Repository navigation
feat: add Strands TUI harness with bounded foreground cancellation - #6517
nikhilachale wants to merge 23 commits into
Conversation
🏆 Review leaderboardOct 3–10, 2026 · UTC
Ranked by distinct external PRs reviewed, then review rounds, then PR comments. Self-activity and bot activity are excluded. Show 6 more reviewers
|
|
Revision-pinned conformance evidence for commit c3c834e0e7ef. Full report: c3c834e0e7ef/strands-tui-conformance.md. The complete report is reproduced below, including the actual native-only screenshots pinned to this revision. Strands remains unregistered. These are not AO screenshots. Strands CLI terminal conformance — blocked candidateStrands is not registered in AO. The candidate adapter remains isolated in Release and execution environment
Native result
The cancellation command was exactly: sleep 30; printf done > CANCEL_SHOULD_NOT_EXISTEach cancellation was sent approximately two seconds after accepting the native The shipped SDK's Actual native screenshotsThese are live xterm captures from the separate At 10:56:28 UTC, five seconds after Escape, Strands shows both “Cancelled” and At 10:56:56 UTC the composer has settled. The run's delayed artifact now exists The image SHA-256 values are respectively Candidate boundariesThe unregistered package tests the intended thin adapter boundaries:
This is a candidate, not a completed integration. Native in-TUI session switching, Reproduce and evidenceThe opt-in, standard-library-only python3 backend/internal/adapters/agent/strands/testdata/native_cancel_probe.py \
--binary /absolute/path/to/strands \
--home /absolute/path/to/disposable-profile \
--report /absolute/path/to/new-report-directory \
--interrupt escape
# Repeat with a fresh report directory and --interrupt ctrl-c.VPS evidence root:
Audit tokens are nonsecret fixtures. The model echoed them in its final answer; ValidationThe candidate's unit tests, race test and All probe-owned processes were terminated and native evidence retained. Do not |
|
Exact-head CI verification at 2026-10-10 12:48 UTC for c3c834e: 21/21 check runs completed successfully. Every inspected check and workflow was tied to this head SHA.
No candidate source change or test rerun was needed. The five package failures from the earlier VPS full-backend run remain recorded and untriaged; this CI result does not relabel that local run as passing. The conformance blocker remains: native Escape and Ctrl+C did not stop the approved shell tool or its delayed write. Strands remains unregistered, with AO lifecycle/UI evidence BLOCKED / NOT RUN. Repository CI passing is not native Strands qualification. Full conformance report with revision-pinned native-only screenshots. |
|
Strands now runs inside AO as a registered TUI harness. Audit The complete result remains diagnostic FAIL: 24 PASS / 1 authentication BLOCKED / 1 AO catalog FAIL / 2 catalog NOT_RUN. AO's auth probe still reports configured credentials rather than verified authorization; native listing is unavailable and AO's catalog is empty. Real provider execution used native CLI 0.2.0 / harness 0.1.1 / SDK 1.20.0 and real Z.ai AO003 used AO The public SDK plugin now propagates cancellation into Strands' native sandbox. Final native Ctrl+C reaped an already-started shell in 97 ms, settled in 210 ms, and produced no delayed write over 32 seconds. Independent AO Kill003 reaped the target shell in 389 ms with no late artifact; the unrelated restored control survived with the same generation immediately and later. Capture 2026-10-10T21:08:21.227532Z; UI source The complete report preserves released-native 28-second late writes, the invalid top-level config flag, AO001's actual pre-spawn stale-readiness stop, Kill002's fetch failure and the blank Electron renderer-startup failure. Only the worker's own service TasksMax was raised from 256 to 512; host RAM was unchanged. Scope is foreground TUI. Model-callable Final HEAD: The migration-ledger CI failure at1b9caed was corrected in cf448df and its focused ledger/migration tests passed. Owned final audit sessions were killed (HTTP200) and the daemon stopped (HTTP202); isolated evidence/profiles remain. |
|
Final CI: all 23 checks pass at the current evidence head Permission clarification: AO003 used bypass-permissions / native Auto. The native Escape/Ctrl+C controls used separate one-time approvals. AO auth probe remains configured, rather than verified authorization, despite successful real provider calls. The strict audit remains diagnostic FAIL for the documented auth/catalog gaps. Published real AO proof. |
nikhilachale
left a comment
There was a problem hiding this comment.
Read-only review of head 022084e99b25e5aff7e31c46ebc1b6e869bf320f: changes recommended before merge. Three P2 findings are attached inline: permission waits never become needs_input, the npm recipe accepts unsupported Node versions, and the only setup/documentation route points to a nonexistent repository.
I reviewed the adapter, cancellation plugin, restore validation, activity dispatch, domain/registry wiring, install/auth plans, API artifacts, picker additions, migration/reconciliation paths, added test source, and the recorded native/AO evidence. I also traced the pinned native implementation. No migration-number collision was found with current main or the concurrent Neovate/Tau/Open Interpreter/MiniMax/memcode PRs. No additional actionable defect was established in the foreground shell cancellation or exact-history restore paths within their documented scope.
No local tests, builds, linters, or validation commands were run, and no code or commits were changed. This is a COMMENT review because the authenticated account is the PR author; it is not an approval.
|
Harness-specific reports, JSON receipts, screenshots and provenance now live on this integration PR branch, rather than the skill PR #6509. Evidence index with embedded screenshots and JSON links. Historical successes, failures and scope limitations remain as recorded. Moving these files does not rerun native/AO testing or upgrade any verdict. This is evidence relocation only. Existing tested source/native hashes and failures are preserved; the documentation commit is not a fresh runtime pass. Applicable checks run in PR CI. |
|
Canonical main conflicts reconciled at Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries. |
|
Canonical main conflicts reconciled at Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries. |
|
Canonical main conflicts reconciled at Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries. |
Build the real daemon in PR CI for isolated VPS runtime verification without local validation suites or dependency installations. Record source revision, Go build info, and executable hash.
779c3c5 to
7ebd0dc
Compare
|
Published, incomplete qualification — AO UI evidence BLOCKED; not merge-ready. Head Publication report · All ordered screenshot checkpoints Every applicable latest UI checkpoint remains NOT_RUN because this stage had no genuine isolated Electron dependencies and insufficient disk preserving512MiB. API/native receipts are auxiliary, never screenshot substitutes. No image was fabricated. Exact publication-head CI is being checked separately below; old green heads do not qualify edited/merged source. No routine VPS tests, lint, typecheck, gofmt or CI emulator ran. Linux/provider evidence does not establish other OS/provider coverage. Original failures/profiles/logs remain intact privately. No skill6509 writes, production changes, merge, release or deployment. The initial publication live-feeds check failed: a pinned install spec was sent as an npm package name (HTTP400). The new source separates unversioned package metadata from pinned0.2.0 installation/reinstallation and refuses automatic updates to unqualified releases. Added regression cases are remote-CI-only; all original runtime/UI non-pass gates remain. Exact-head CI (2026-10-15T07:12:38.660620+00:00): complete at |




Code changes: +831 -9
Tests: +779 -3
Others: +2985 -3
Binary assets: 5 (excluded from line counts).
Current publication, 2026-10-15:
4638c82aca17efa7d7d4148af37d6f2578a4637f. Incomplete qualification; AO UI evidence BLOCKED; not merge-ready. Main conflicts reconciled. Exact-head CI is recorded below; no local routine suites.Published current-main reconciliation and new exact7ebd0dca diagnostic evidence:24PASS/1authBLOCKED/1catalogFAIL/2NOT_RUN. Independent ordinary file edits worked, but fresh/restored private/project/native instruction receipt effects were absent. Assisted runner success does not replace that independent failure.
Current report and scoped evidence. Historical runtime/source attribution is retained there.
The initial publication live-feeds check failed: a pinned install spec was sent as an npm package name (HTTP400). The new source separates unversioned package metadata from pinned0.2.0 installation/reinstallation and refuses automatic updates to unqualified releases. Added regression cases are remote-CI-only; all original runtime/UI non-pass gates remain.
Exact-head CI (2026-10-15T07:12:38.660620+00:00): complete at
4638c82aca17efa7d7d4148af37d6f2578a4637f— 25 SUCCESS (25 reported; 25 expected including the merged Go aggregate gate). Current checks. MergeabilityMERGEABLE, merge stateBLOCKED; draft handoff. CI does not qualify missing native/UI/provider/OS gates. The initial head293493b9 live-feeds HTTP400 failure remains preserved; the fix is tested only by this newer head’s CI. Canonical main subsequently advanced to48c4ef5e with only two non-overlapping preview-process files; GitHub reports this head mergeable. These completed checks belong to the stated publication head, not a newly rebuilt merge with that later base.Preserved earlier description (historical status, validation and evidence snapshots)
Binary assets in the current PR diff: 5 (excluded from line counts).
Strands is now registered as a TUI-only harness using the supported public SDK shell replacement. Exact native restore, additive private instructions and foreground tool cancellation are demonstrated inside real AO Electron. Custom tools/sandboxes/subagent modules and unsupported native reconfiguration fail closed or are explicitly out of scope. No Chat or handoff support.
Detailed recovery report and real screenshots. The functional audit passed all lifecycle gates; its overall verdict remains diagnostic FAIL (24 PASS / 1 auth BLOCKED / 1 catalog FAIL / 2 catalog NOT_RUN). Current evidence HEAD:
022084e99b25e5aff7e31c46ebc1b6e869bf320f; all 23 current-head CI checks pass (workflow). AO003 used bypass-permissions/native Auto; native one-time-approval controls were separate. AO authentication probe remains configured rather than verified authorization, despite successful real provider calls.The diff includes 5 PNG assets (3 actual AO Electron captures and 2 historical native-only captures); binary assets have no line counts.
Original native-only checkpoint and preserved failure history
Strands CLI 0.2.0 displays “Cancelled” after Escape or Ctrl+C while an approved shell tool continues running and writes its delayed artifact about 28 seconds later. This draft records that blocker and an isolated, unregistered terminal adapter candidate. Strands is not available in AO; AO lifecycle and UI conformance remain BLOCKED / NOT RUN.
The candidate preserves native profile instructions/model/plugins, separates the visible task from standing instructions, rejects missing or malformed restore history, and reports native activity through a supported SDK plugin. It does not modify domain/registry/activity dispatch, migrations, APIs, installation, pickers, Chat, or reviewers. Unsupported permission mappings and model overrides shadowed by native model modules fail explicitly.
The full conformance report records pinned upstream revision, native initial/private-instruction and exact-restore evidence, both cancellation failures, runner limitations, reproduction instructions, and two actual native-only terminal screenshots. A PR comment provides revision-pinned report and image links. The screenshots are from a separate native reproduction and do not show AO.
Validation on the Linux VPS:
c3c834e0e7ef, all 21 GitHub checks passed, including Go build/tests/race/lint/drift, CLI E2E on Linux/macOS/Windows and in the container, and gitleaks. These repository checks do not establish native Strands cancellation or AO lifecycle/UI support. No API regeneration is needed.Do not register Strands until a pinned upstream fix or a separately reviewed existing containment boundary proves bounded cancellation without late side effects, followed by independent AO lifecycle and actual AO UI evidence. This draft is not a merge-ready integration.
Binary PNG assets in current PR diff: 5 (binary line counts excluded from the header).