Skip to content

Claude/symbolic moment person selection cu zt y#457

Open
DHCross wants to merge 2 commits intomainfrom
claude/symbolic-moment-person-selection-cuZtY
Open

Claude/symbolic moment person selection cu zt y#457
DHCross wants to merge 2 commits intomainfrom
claude/symbolic-moment-person-selection-cuZtY

Conversation

@DHCross
Copy link
Copy Markdown
Owner

@DHCross DHCross commented Apr 26, 2026

No description provided.

claude added 2 commits April 25, 2026 02:36
…ging

Surfaces an explicit target picker when the user kicks off a Symbolic Moment
with one or more staged counterparts, mirroring the Solo Mirror flow. Adds a
`pendingSymbolicMomentResolver` state and a `runSymbolicMomentLane` callback
that accepts `profileOverride`/`forcePrimaryScope` so each picker option can
route the read at the correct anchor profile. Also offers Map Us, Stage From
Vault, and Dismiss escape hatches so people-selection from vault or after
staging is now obvious instead of being limited to the relational read lane.

https://claude.ai/code/session_01WiNwPjtGzyNaAMab6srzqy
Adds two new picker buttons for multi-person reads:
- "Read All Staged" (indigo): reads all staged counterparts excluding primary
- "All In Scope" (sky): reads primary + all staged profiles together

Implements `stagedOnlyScope` option in `runSymbolicMomentLane` to pass
observer profiles only to sendMessage. Updates picker copy based on the
number of staged profiles and adds tooltips explaining each option.

https://claude.ai/code/session_01WiNwPjtGzyNaAMab6srzqy
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
shipyard Error Error Apr 26, 2026 8:24pm

Request Review

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
B Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an explicit “who should this symbolic moment reading target?” selection flow when counterparts are staged, aligning the symbolic-moment guided entry behavior with the existing solo-mirror resolver pattern.

Changes:

  • Introduces pendingSymbolicMomentResolver state + lifecycle cleanup to manage a staged-profile selection prompt for symbolic moments.
  • Refactors symbolic-moment guided entry to route through a new runSymbolicMomentLane(...) helper and to defer sending until a target is chosen when staged profiles exist.
  • Adds UI for selecting symbolic-moment read scope/target (me, a specific staged profile, all staged, all in scope) plus shortcuts to mapping and staging.

Comment thread vessel/src/app/page.tsx
targetModeOverride: 'FIELD_REPORT',
structuredReadingOptInOverride: structuredFieldReport,
}).catch(() => { });
}, [armCorridorLoadingMode, observerStagedProfiles, primeAlignmentCorridor, requestReadArm, sendMessage, sendScopedMessage]);
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

runSymbolicMomentLane uses maybePrimeAlignmentCorridor(...), but the useCallback deps don’t include maybePrimeAlignmentCorridor (and include primeAlignmentCorridor, which isn’t referenced). This risks a stale closure if maybePrimeAlignmentCorridor changes. Include maybePrimeAlignmentCorridor in the deps array and drop unused deps.

Suggested change
}, [armCorridorLoadingMode, observerStagedProfiles, primeAlignmentCorridor, requestReadArm, sendMessage, sendScopedMessage]);
}, [armCorridorLoadingMode, maybePrimeAlignmentCorridor, observerStagedProfiles, requestReadArm, sendMessage, sendScopedMessage]);

Copilot uses AI. Check for mistakes.
Comment thread vessel/src/app/page.tsx
type="button"
onClick={() => {
setPendingSymbolicMomentResolver(null);
setSoloFocusProfileId(null);
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “All In Scope” action clears soloFocusProfileId but not primaryOnlyScope. If primaryOnlyScope is currently true, runSymbolicMomentLane(...) will fall through to sendScopedMessage(...), which will still force a primary-only request and ignore staged profiles. Clear primaryOnlyScope (or otherwise force shared/map scope) before launching this lane so “All In Scope” actually includes staged profiles.

Suggested change
setSoloFocusProfileId(null);
setSoloFocusProfileId(null);
setPrimaryOnlyScope(false);

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants