fix(agents): recover status polling and scope failure diagnostics - #283
Conversation
Signed-off-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
Signed-off-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 No actionable findings at 7d2f5b2354c209001aa1dc495e471cdddc38d652 against f761867ed81f25604933620f9b4747a871a69c04. Polling recovery remains read-only; the reviewed error ownership, lifecycle and workspace-guidance changes have no supported defect.
Validation is not fully green: the full frontend run passed 3968 tests and failed four outside the changed paths (relay-broker 503, Vite subprocess timeout, relay-traffic timeout, profile-identity timeout). Their cause/baseline is unestablished, not proven unrelated. Changed frontend suites and typecheck passed; the full agent-controller crate passed 77 tests with one ignored.
Reconcile the frontend failures before merge. Native Tauri lifecycle, browser-engine acceptance and live workspace behavior were not exercised. This is a COMMENT, not approval.
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord automated source review (via Wes’s account)
No actionable source-demonstrated defects found in this change. This is non-blocking COMMENT feedback, not approval or merge authorization.
- Head:
7d2f5b2354c209001aa1dc495e471cdddc38d652 - Base / merge base:
f761867ed81f25604933620f9b4747a871a69c04
Checked
- The existing five-second observation timer now admits error-state reads, while the controller still coalesces reads, blocks them during writes, and fences stale reads with its generation. Recovery does not replay actions, and hidden/unmounted observers stop initiating periodic reads (
control-react.ts:11–23,control.ts:230–272). - Status/retry notices precede the cards. A successful snapshot clears the global warning; native Start/Stop diagnostics remain keyed by agent. Traced the missing-workspace failure through native
start/record_error/snapshotto the affected card and editor, rather than introducing a second error owner. - Failed Save now retains the sanitized operation message in its originating editor after status recovery. Create and Delete already retain their local failures; checked their callers and the new mounted assertions for error retention, unrelated-agent isolation, recovery, and no write replay.
- Databricks guidance names the existing Advanced → Model → Databricks workspace (HTTPS origin) control. Empty offline drafts remain saveable; invalid-origin diagnostics do not echo the input. The model-picker test change waits for actual popup opening/closure without loosening its retry/manual-entry assertions.
Validation limits
Source only: pinned Git-object extracts were byte/hash verified; no dirty checkout inputs were used; base→head git diff --check passed. No PR code, tests, builds, installs, or app workflows were executed, and CI was not assessed. The PR’s reported test results are not independently reproduced here. Native startup/recovery, real credential and relay behavior, rendered browser behavior, and human acceptance remain unverified. The PR description itself lists revised native-app exercise and human confirmation as pending; this review does not clear those acceptance gates.
|
On behalf of Wes, recorded by Brain. Wes confirmed the requested local smoke test on 2026-09-25: “ok this seems to be working ok.” This follows the worktree launch/start/mention instructions for 7d2f5b2. The agent identity and individual failure scenarios were not specified, so this is normal-flow human confirmation—not a claim that every failure path or crash recovery was exercised. CI run 36176389690 passed at that head: all Vitest, Rust/doctests and Node integration steps, both Chromium/WebKit journey shards, and browser measurements executed successfully. DCO also passes; Windows native validation was skipped by the automatic workflow. The PR is already approved and out of draft. No merge performed. |
…-image * origin/main: (23 commits) fix(agents): recover status polling and scope failure diagnostics (#283) Share avatar editing across community profiles and managed agents (#271) feat(profiles): archive, unarchive and delete agents from the profile pane (#256) ci: run browser journeys on three shards per engine (#280) ci: publish scheduled macOS test prereleases (#262) feat: add private text feedback plugin (#242) 🤖 docs: add pre-PR checklist and review guidance to AGENTS.md (#268) perf(sidebar): stop rerendering every row's menu on channel switch (#265) Explain missing Pi provider models (#263) Browse Goose models and enter provider API keys (#230) test(agents): check model lookup Cancel by visible text (#259) Ask before mentioning people outside the channel (#257) Refine direct message opening (#107) feat(messages): report messages to community moderators (#255) perf(channels): stop rerendering message rows after each channel switch (#269) feat(profiles): open targeted agent editor from owner profile (#254) Let plugins declare local commands and HTTPS origins (#169) feat(profiles): show agent metadata and copyable nip05 (#253) Organize app and community settings (#173) Add status badge cutouts to avatars (#211) ...
* origin/main: feat: attach sanitized image and opt-in diagnostics to feedback (#245) test: repair three baseline Vitest failures (#276) fix(agents): recover status polling and scope failure diagnostics (#283) Share avatar editing across community profiles and managed agents (#271) feat(profiles): archive, unarchive and delete agents from the profile pane (#256) ci: run browser journeys on three shards per engine (#280) Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/bundled/agents/AgentEditor.tsx
On behalf of Wes, prepared by Brain.
Summary
Scope
Targets main directly. The baseline profile query-count failure was independently fixed by #242 while this work was in progress; #282 is superseded and is not a dependency or part of this diff.
No supervisor/process cleanup changes, logging, local configuration, credentials, import changes, or automatic operation retries. This does not newly certify crash recovery or all imported agents. Existing native per-agent error ownership is reused; no new error store, lifecycle owner, or polling timer.
One separate six-line test-only commit fixes a gate failure in the model-picker authentication test: model lookup could finish before Base UI’s animation-frame popup opening, so Escape ran too soon. Wait for
aria-expanded=true, then assert closure after Escape; existing retry/manual-entry assertions remain. No sleeps, retries, timeout changes, or product changes to the picker.Validation
check-pushat 7d2f5b2, based on f761867: TypeScript, 450/450 related tests (30 complete files), and design types/guards pass. Managed hooks were preserved; repo check groups ran explicitly because the installer refuses to replace them. Both outgoing Brain commits have matching DCO sign-offs.agent-control.spec.mjsandagent-editor-grid.spec.mjs: 32/32 browser cases pass across Chromium and WebKit, no retries, against isolated fixtures with no live identity. Run at 72e88200 immediately before dropping the unrelated profile-test barrier; verified the only tree difference to final head isProfileAgentIdentity.test.tsx. This covers existing control/editor workflows, not native host/relay behavior. No browser cases were added or removed.Remaining acceptance — draft only
bin/just desktoponly when ready to switch builds; do not run the same identity in old Buzz and buzz-app simultaneously.