Claude/symbolic moment person selection cu zt y#457
Conversation
…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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
There was a problem hiding this comment.
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
pendingSymbolicMomentResolverstate + 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.
| targetModeOverride: 'FIELD_REPORT', | ||
| structuredReadingOptInOverride: structuredFieldReport, | ||
| }).catch(() => { }); | ||
| }, [armCorridorLoadingMode, observerStagedProfiles, primeAlignmentCorridor, requestReadArm, sendMessage, sendScopedMessage]); |
There was a problem hiding this comment.
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.
| }, [armCorridorLoadingMode, observerStagedProfiles, primeAlignmentCorridor, requestReadArm, sendMessage, sendScopedMessage]); | |
| }, [armCorridorLoadingMode, maybePrimeAlignmentCorridor, observerStagedProfiles, requestReadArm, sendMessage, sendScopedMessage]); |
| type="button" | ||
| onClick={() => { | ||
| setPendingSymbolicMomentResolver(null); | ||
| setSoloFocusProfileId(null); |
There was a problem hiding this comment.
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.
| setSoloFocusProfileId(null); | |
| setSoloFocusProfileId(null); | |
| setPrimaryOnlyScope(false); |




No description provided.