Add agent conversation context selection - #382
Conversation
Signed-off-by: Salman Mohammed <smohammed@squareup.com>
Signed-off-by: Salman Mohammed <smohammed@squareup.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5f71ce8d43
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord automated source review
Published through Wes’s account. Head: 5f71ce8d43bbfabe8393797bcd2c4d5f05e43ea2; base: 2dd479666ca5bd40166b7e3e79cf3fb0872baa28. COMMENT only—not approval or merge authorization.
One actionable P2 finding is inline: preserve legacy Channel semantics when the serialized policy field is omitted. Mantis’s independent native review corroborated the omitted-field cases after checking the legacy serializer and resolver. No additional actionable defect found in the reviewed UI/draft/IPC, effective-default, launch-environment or restart paths.
Scope and design
- Reviewed all 23 changed files and relevant callers, persistence/import lifecycle, explicit inheritance, create/duplicate/edit flows, reserved runtime environment and effective restart comparison. Confirmed the session-policy consumer in bundled
block/buzzrevision48884848f566d02c42ce07636636c4ad5f164c27, including conversation-scoped DMs. - The change reuses the shared Select and existing controller/defaults/restart owners; no competing lifecycle machinery. Minimalness 9/10, elegance 9/10, correctness 8/10 until the inline import defect is fixed.
- Error/retry was assessed separately from success/cancel: source preserves failed-save drafts and existing status/retry/close controls. Actual keyboard focus, scrolling and native recovery remain unexercised here.
- Public-material inspection: repository is public; description, both commit records/attribution and changed source/tests inspected. No actionable disclosure finding. The description has no image attachments.
Validation evidence and limits
Source-only: neither reviewer executed PR code, tests, builds, installs or app workflows. The immutable 1,672-blob source snapshot was checked against Git objects; no dirty-worktree inputs were used.
One hosted CI snapshot reports success for JavaScript (5,053 tests across 418 files), Rust/tool integration, browser measurements, all six Chromium/WebKit journey shards, and CI required; DCO also passed. That run tested merge checkout 64ddfe492f5e8e5c572e56161855aeaa259e8bbf, this head into 423f7215e124aa68b828c85f9040703a3fe9913d, not the review base above. Windows native validation was skipped. The browser change adds scrolling before an existing selection and adds/removes no cases or assertions.
Green hosted checks do not establish native save/reopen behavior, attended agent restarts, real channel/thread sharing or isolation, or human acceptance. Those remain unverified by this review; the PR description also lists them as pending. This review does not attest the repository readiness checklist.
Signed-off-by: Salman Mohammed <smohammed@squareup.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ccf04a2c1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Salman Mohammed <smohammed@squareup.com>
Signed-off-by: Salman Mohammed <smohammed@squareup.com>
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord automated source review (via Wes’s account)
No new actionable findings in this bounded follow-up. Reviewed head 14efa07f95eacfd7576c0d2e635c5295d30ecd9d against base ffe932228caee3ee43d9a766b04cd8f67a9a3cc7. COMMENT only—not approval or merge authorization.
The previously reported policy-preservation defects are addressed in source:
- Legacy imports:
config.rs:221–241selects the linked definition object before the record and interprets its omitted policy as Channel. New agents still inherit, and explicit inheritance overrides imported policy. This resolves the prior import finding and matches the pinned legacy serializer/resolver. - Agent edits: the presence-aware deserializer (
config.rs:29–33,114–116) distinguishes omitted policy from explicitnull;apply()preserves the former and selects inheritance for the latter. The store regression exercises both real JSON payload shapes. - Default edits:
agent_defaults.rs:65–67,98preserves the saved default when an older caller omits the field. The new regression checks omission followed by an explicit replacement.
Traced these repairs through import retention, snapshot projection, atomic save, effective launch settings and the existing restart-on-save comparison. The merge resolution keeps main’s consolidated model-hint coverage and this feature’s policy fixture. No new lifecycle owner or speculative abstraction is introduced. Minimalness 9/10, elegance 9/10, correctness 9/10 for this source-review scope.
Error/retry was assessed separately from success/cancel: failed saves retain drafts and require refreshed status before retry; successful saves clear drafts and report restart failures separately. These fixes add no focus transitions; actual keyboard focus, scrolling and native recovery remain unexercised.
Public-material check: repository is public; inspected the description, feature commit messages/attribution, changed source/tests and merge resolution. No actionable disclosure finding; the description contains no attached images. No dirty-worktree inputs were used; the extracted head snapshot’s 1,688 blobs were verified against Git objects.
Validation limits: source-only—no PR code, tests, builds, installs or app workflows executed. Added regression assertions were inspected, not run. Current hosted CI was not assessed in this follow-up. Native save/reopen, live channel/thread isolation, attended restarts and human acceptance remain unverified by this review; the description also lists app/relay checks as pending. This does not attest the repository readiness checklist.
…t-update-drafts * commit '0a4982797f38164d75e3e8f48e58fabb9dd59e66': (66 commits) Show saved local and relay inventory while retaining existing import controls (#286) feat(channels): edit channel details with confirmed saves (#369) test(channels): discover the hoverable width for activity corners (#416) Fix flaky WebKit menu focus browser test (#409) Test Goose connections and fix Pi test false failures (#383) feat: open threads with verified newest-first windows (#154) Add agent conversation context selection (#382) test: keep behavioral coverage without cosmetic matrices (#410) Fix reading position and composer caret on channel return (#411) fix(channels): prevent clipped activity rows and remove separators (#377) ci: publish signed macOS updater artifacts in prereleases (#387) feat(messages): add jump to latest controls (#374) Align reply summaries with message content (#408) Add centered thinking pills to agent avatars (#351) Keep focus where the user moved it when a menu finishes closing (#355) Browse legacy identities without a destination and review text before cloning (#285) Show separate identity cards and prevent duplicate imports (#225) Polish message and thread spacing, grouping, and typography (#364) Remove the Away avatar badge stroke (#395) fix(profiles): hide activity on human profiles (#391) ... Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
* origin/main: (25 commits) Show saved local and relay inventory while retaining existing import controls (#286) feat(channels): edit channel details with confirmed saves (#369) test(channels): discover the hoverable width for activity corners (#416) Fix flaky WebKit menu focus browser test (#409) Test Goose connections and fix Pi test false failures (#383) feat: open threads with verified newest-first windows (#154) Add agent conversation context selection (#382) test: keep behavioral coverage without cosmetic matrices (#410) Fix reading position and composer caret on channel return (#411) fix(channels): prevent clipped activity rows and remove separators (#377) ci: publish signed macOS updater artifacts in prereleases (#387) feat(messages): add jump to latest controls (#374) Align reply summaries with message content (#408) Add centered thinking pills to agent avatars (#351) Keep focus where the user moved it when a menu finishes closing (#355) Browse legacy identities without a destination and review text before cloning (#285) Show separate identity cards and prevent duplicate imports (#225) Polish message and thread spacing, grouping, and typography (#364) Remove the Away avatar badge stroke (#395) fix(profiles): hide activity on human profiles (#391) ... Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/bundled/agents/AgentsPage.test.tsx # src/bundled/agents/AgentsPage.tsx
Why
Buzz App has no way to choose whether an agent shares conversation context across a channel or keeps separate context for each thread, although the relay supports both policies.
What changed
nullselects inheritance. An omitted defaults edit preserves the saved device choice.Checks
14efa07f: 110 passed, 1 ignored. Earlier avatar and build-config suites passed (5 and 11 tests).cargo check -p buzz-foundation --tests,cargo fmt --check, andtsc --noEmitpassed.14efa07f: 40 related Vitest files (643 tests) and design-system checks passed.git diff --checkpassed.Still to verify
CI follow-up
sessionPolicy(preserve) from explicitnull(inherit). Legacy imported definitions and records with an omitted field resolve to Entire channel. Regression tests failed before the fix and pass at0ccf04a2. Foundation library tests passed with--test-threads=2(131 passed, 4 intentionally ignored); an earlier concurrent run hit an unrelated host-command test timeout, and that test passed in isolation.sessionPolicyno longer resets a saved Each thread default to Entire channel. The regression test failed before the fix and passed at350419a1.mainatffe93222into14efa07f. The only content conflict was in a model-hint test: main’s consolidated cases stay, along with this PR’s conversation-context fixture. Five affected frontend test files passed (163 tests).14efa07f(40 Vitest files, 643 tests, design checks). Hosted CI is running on this merge head; DCO passed. The previous head350419a1passed the required check, Rust, JavaScript, browser measurements, all Chromium and WebKit journey shards, DCO, Semgrep, and zizmor. Windows native validation was skipped.Generated with Codex