feat(profiles): add owner runtime configuration tab - #252
Conversation
Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Grant agent_control_start_on_app_launch to the main webview, fence queued launch restore against explicit Start/Stop, save the launch preference off for created and imported agents, show the model and provider the next start resolves, report the launch preference in the agent editor, restore base copy, and drop the unread MCP servers section. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
launchModel/launchProvider now project only saved selectors and build defaults. When a saved environment override decides a selector, the snapshot names its key (launchModelEnv/launchProviderEnv) and omits the value, covering the worker model/provider keys and DATABRICKS_MODEL. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
…ixtures Add a deterministic credential-gate host test: two launch-enabled agents, Stop and explicit Start during an in-flight restore, late credential completion, and fence reset on a fresh host. Add a real IPC test for agent_control_start_on_app_launch covering persistence, revision stability, write failure, unknown id and reopen. Extend the snapshot withholding test with empty and combined overrides and make the ProfileRuntime fixture match the native projection. Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
Changes requested: one P2 browser-fixture regression, detailed inline. Merge criteria: restore coherent launch-preference fixtures and both stopped-state branches without dropping lifecycle assertions, then pass the required CI gate. Do not change the independent production launch preference to satisfy legacy test expectations.
Source review covered owner/native-record gating, preference persistence, main-window IPC permissions, restore-versus-explicit-action ordering, and saved/running configuration redaction. No additional demonstrated production blocker survived integration review.
Existing exact-head CI, on this head merged with base df7b7e7f45739f3e06e12d81623385701acdc51d, failed 16 browser case executions (eight per engine). Vitest (3,702), Rust/tool integration and the other browser shards passed. Review was source-only on Blox; no PR code executed or CI rerun. The new Runtime tab has component coverage, not a browser journey; native webview, packaged/macOS/Windows runtime and OS credential-dialog acceptance remain unverified.
| status: "running", | ||
| error: null, | ||
| diagnostics: ["Listener process started; readiness is unverified."], | ||
| startOnAppLaunch: true, |
There was a problem hiding this comment.
[P2] Preserve the browser fixture’s launch-preference contract
Adding startOnAppLaunch: true makes the shared fixture behave like an explicitly opted-in record. Its action() (lines 82–88) clears enabled on Stop but leaves this flag true, so AgentEditor now renders “Stopped · starts with buzz-app.” The unchanged browser fixture uses this factory, while seven positive assertion sites in tests/browser/agent-control.spec.mjs (141, 366, 436, 816, 837, 856, 863) still expect the preference-off text. CI run 36094738270 fails eight cases in each of Chromium and WebKit as a result.
This also aborts the tests before their late-launch supersession/pending-launch cleanup, unavailable-runtime IPC, and import-preview assertions. It is not a production Stop bug: native legacy records derive the flag from enabled, while an explicit preference must survive Stop.
Make the fixtures deliberately distinguish legacy fallback from an explicitly set preference, including the copied-agent/custom-action browser cases. Alternatively, update the scenarios intentionally while preserving equivalent branch and lifecycle coverage. Keep a stopped/preference-off witness and an explicit-preference-on-after-Stop witness; a blanket string replacement loses the former. Restore the required gate without changing production preference semantics.
Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Kalvin Chau <kalvin@block.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
Re-review clear: the previous fixture-contract blocker is resolved. No new blocker found in the two-file follow-up from a4b5cae4665e38185ef4af10d9e260eb9da0478d to this head. This is a COMMENTED review, not approval.
The browser fixture now deliberately starts with the real explicit-off preference. The stopped/preference-off assertions and their later lifecycle checks remain, while a separate explicit-on witness checks that Stop clears enabled without clearing the launch preference. Native legacy fallback remains covered at the store layer; no production preference semantics were changed to make tests pass.
CI run 36116085824 is green on merge abfc460 of this head into df7b7e7f45739f3e06e12d81623385701acdc51d: all 16 previously failing browser executions pass, 660/660 functional cases plus 7/7 measurements, and 3702/3702 Vitest tests. The author-local Vite timeout did not reproduce in hosted CI.
Source-only re-review on isolated Blox; no PR code executed or CI rerun. Unchanged gaps: no rendered Runtime-tab browser journey, attended native/packaged launch or OS credential-dialog acceptance; Windows native CI skipped and two macOS-only Node cases skipped. This closeout addresses the prior blocker and changed paths, not a new release certification.
Change
start_on_app_launchis a separate persisted preference.enabled.false.agent_control_start_on_app_launch, which is granted to the main window only.Verification
cargo fmt --check: pass.clippy --all-targets -D warningsonbuzz-agent-controllerandbuzz-foundation: pass.pnpm check: pass.dev/vite-config.test.mjs10 sspawnSynctimeout. The same timeout occurs onb276b867, which does not contain this branch.cfg(unix)module. This was checked with a cfg-disabled proxy only; the on-demand Windows CI lane has not run.