Skip to content

fix(fleets): finish M224 evidence and simplify chat - #796

Merged
indykish merged 7 commits into
mainfrom
feat/m224-ci-campaign
Nov 2, 2026
Merged

indykish merged 7 commits into
mainfrom
feat/m224-ci-campaign

Conversation

@indykish

@indykish indykish commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Fleet approvals now remain visible while a decision saves, Slack activity opens readable messages, and chat shows meaningful tool actions and calm interruption notices. Repair traces preserve call identities before optional output previews; known-truncated HTTP bodies retain an explicit source-gap notice instead of sending an unusable large prefix back to inference.

Session notes 1

Fixed the reported approval flicker, success icons and chat disclosures while preserving the validated 14px layout, keyboard access and event ownership.
Recorded the reduced M224 scope, actual native memory recall and varied social replies. Added the pending M236 goal/Jev/durable-repair spec and updated architecture scenario owners.
M224 remains IN_PROGRESS: this PR does not claim a passing eight-case campaign, complete new repair trace, development deployment or production acceptance.

  • Source fleet definitions preserve public read-only HTTP, repository/base boundaries and reviewed grant ownership. Native responder revisions were applied through Review/Apply; varied greetings and thanks produced concise replies with no tools or omitted calls.
  • Same-fleet native recall passed after fresh source reads, without providing the remembered cause or saving a replacement note. Linkwarden draft chore: simplify README comic and apply pending updates #6 retains its unchanged regression proof (1 failed / 2 passed before; 3 passed at repaired head), and Indy confirmed its Slack reply.
  • Later native observations: explicit unrelated missing-link request 01a19831-3131-7f36-b7f7-d303fbd202b4 clarified with zero calls; unsafe repair 01a19857-c6bd-7e7c-85b5-c958b8a46544 refused with zero calls. Ambiguity retry 01a19831-4163-7223-896e-b9e963c9aa71 stopped after one failed guessed endpoint, but still failed the expected zero-call clarification. Earlier failures remain recorded.
  • Remaining live failures are explicit in the launch ledger: ambiguous-attempt clarification, provider interruption during the required large-log case, the blocked-source case and a fresh complete repair trace. Local trace/body regressions pass, but their live behavior needs deployment and another actual-model run.
  • The bespoke scripts/ci-evidence and cli/test/ci-evidence code remains until the approved verification condition is met. Synthetic checker tests are not evidence of live fleet behavior.
  • M236 is an authoring draft, not implementation-ready or shipped autonomy. It combines existing-PR authority, later-CI continuation, worker recovery, human steering and a Grafana/scheduler development demonstration. Technical design blockers remain named before implementation.
  • Orly 0.28 cleanup is scoped separately in Orly #75, under M15_002.

Owner scope decisions: development rollout/full Linux acceptance — “remove this or park this or consider this as descoped.” Incident prerequisites — “this must be removed so we dont wanna go to elastic now.” Production — “we must do this after the other spec for M23x are written and fully autonomous agent is realized in dev.” No merge, tag or production release is authorized here.

Assumptions and dead ends: greeting handling is instruction-driven, not a native keyword router. A transport interruption is observed; this PR does not claim to have proven its provider root cause. Local integration required an IPv6 loopback proxy bypass, the session CA in the test fixture and a child subreaper because PID 1 does not reap children; these are execution-environment settings, with no weakened repository gates. Offline CLI coverage also requires clearing the task-injected AGENTSFLEET_API_KEY: with it present the no-token fallback was never exercised; the isolated rerun passed the unchanged coverage floor and all 2,177 CLI tests.

Review

Two requested Sol Max rounds and Astra completeness reviews corrected workflow eligibility, wait registration before publication, stale architecture claims and duplicated design ownership. Their findings and dispositions are recorded under docs/reviews/development-autonomy/.

Native code review found no actionable defects in the final trace/HTTP source changes or the final icon diff. The complete application run caught an obsolete destructive-color assertion; it now checks the named accessible failure status. Runner capability assertions were updated to the readable availability words. Standards findings on scope wording and test mappings were fixed. The gstack native pass ran; its outside-Claude structured coverage helper was unavailable because the Claude CLI is absent, so full gstack coverage is not claimed. The future autonomy draft retains explicit design blockers.

The requested CLI Effect audit found existing issues outside the implemented fix: P1 cancellation is not forwarded through HTTP attempts/backoff (fleet_steer.ts:123, http-client.ts:219, http-retry.ts:312); P2 polling hides permanent failures and can exceed its deadline (fleet_steer_events.ts:278); P2 approval pagination can silently stop with a remaining cursor (approvals.ts:91). These are reported for owner review before changing existing transport policy. No performance measurements or broad Effect rewrite are claimed.

Make

orly gate pr — exit 0 on d4b72269d909237eb6abac798405d0f1ef501b48; deciding result: PR boundary open. All four declared commands passed: make lint-all, make test-unit-all, make test-integration-rustd, make check-version. The integration lane reports 1,454 passed plus 3 exclusive checks; every package coverage gate passed.

Execution: Bun 1.4.4; Cargo two jobs with debug info and incremental compilation disabled. Offline test processes clear the task-injected API key and unrelated UI environment overrides. Environment-only proxy/CA/subreaper settings are recorded above; no repository gate or hook was changed.

Additional scoped checks: make test-unit-app test-unit-design-system lint-app lint-design-system — exit 0; application 4,633 passed, design system 522 passed, both lint checks passed.

Other scoped checks: browser chat fixture — 6 passed on desktop/mobile. Changed trace/body source coverage measured 123/123 and 33/33 lines respectively. Both regressions were observed failing against the earlier implementation, then passing with the exact final source restored.

Visual evidence: /workspace/m224-campaign/chat-polish-browser-final.log records 6 passed (5.9s) for ui/packages/app/tests/e2e/chat-typography.spec.ts; the fixture exercises readable messages, enclosed success icons, failure details, 14px type and keyboard access. Signed-in production-page acceptance is not claimed.

Session notes 2

Completed the scoped manual-first M224 evidence and moved both M224 specifications to done/. The eight native behavior proofs, original repair's fifty full records, unchanged regression, visible Slack delivery and same-fleet memory recall are recorded in the concise ledger.
Split chat reply orchestration, announcements, actions and tool rows/details into smaller components. Ten streamed text updates caused twenty unchanged tool-group recalculations on the parent and zero after refactoring; changed outcomes still refresh and expanded rows retain their identity.
Fixed CLI cancellation, permanent-error polling, deadlines, admitted-event visibility and incomplete approval pagination. Removed the bespoke checker and its 210 synthetic tests after native verification; runtime policy and repair tests remain.

  • Corrected the safety-gates failure's historical link. OAuth transport fixtures now consume complete POST bodies, retain listener ownership and join their workers; production retry classifications are unchanged.
  • The final diagnosis removes unsupported repository attribution and corrects the same native memory finding after fresh evidence reads. Ambiguous attempts clarify with zero calls; blocked and truncated required logs stop explicitly.
  • Source definitions retain the reviewed public HTTP policy and repository/base boundaries. Orly 0.28 remains the separate M15_002 spec in Orly #75; Docs #237 documents CLI recovery.
  • M236 remains a pending design for the goal/Jev loop, durable repair, existing-PR authority, worker recovery and Grafana/scheduler development demonstration. Existing production, incident, rollout-identity and full-Linux owner deferrals remain recorded in M224.
  • Indy directed: “Well if you ran it before stop the re run, let CI run it.” Repeated local suites were stopped. Final pushed-revision checks belong to CI; this update does not claim a passing final local aggregate gate.

Review

No outstanding concrete code or standards findings in the bounded final reviews. Fixed the spec's generic file entries by naming the new modules, callers and tests. Earlier architecture findings remain reconciled in their owning pages; the requested separate development-autonomy review folder is deleted.

Make

Verified source pushed as 9db0ff633be05ace45790e2314b3c4d430e49c79; local HEAD and upstream match and the working tree is clean.

  • make test-unit-app — exit 0: 4,634 passed across 463 files.
  • make lint-app lint-cli — exit 0 after the type-only import correction; source audits passed.
  • CLI bun run test with the task API key cleared — exit 0: 1,985 passed, 16 skipped; function and line coverage 100.00%, enforcement PASS.
  • cargo test -p afd_credential --all-features --lib — exit 0: 148 passed; corrected fixture classifications preserved.
  • Desktop/mobile chat-typography.spec.ts — exit 0: 6 passed (5.1s), exercising the refactored components, actual CSS, keyboard controls, 14px type and terminal outcomes. The earlier signed-in production-page Slack target plus nine preflight checks passed: 10 passed (2.2m).
  • Rendering counter: parent 20 versus candidate 0 group recalculations for ten text updates; changed-failure assertion also passed. This measures repeated group work, not frame rate.
  • make check-playbooks-refs — exit 0 after repairing the historical link.
  • gitleaks detect --redact --no-banner and staged scan — exit 0, no leaks; git diff --check clean.
  • App coverage found two unreachable comparator fallback branches (99.98% statements / 99.97% branches). The fallback was removed; the subsequent local rerun was stopped at the owner's direction. Final coverage and complete repository results are pending CI on this head. The earlier complete local gate in Session notes 1 applies only to its named revision.

Temporary campaign captures and checkout are being removed at the owner's request. Native proof URLs, setup hashes, test sources and the concise ledger remain in Git.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge, subject to the required CI checks.

Summary

This PR finishes the scoped M224 evidence work and simplifies fleet chat.

  • Approval rows stay visible while a decision saves.
  • Chat activity shows readable messages and clearer status labels.
  • Chat tool groups show actions and skip unchanged work during streaming.
  • CLI steering stops on cancellation and reports incomplete reads.
  • Fleet evidence keeps call identities and labels truncated responses incomplete.
  • The bespoke synthetic CI evidence checker is removed.
  • M224 completion records keep native evidence and remaining scope together.
  • A pending M236 design lays out goal-driven repair across later events.
  • Confirmed success marks use enclosed check icons across shared screens.
  • OAuth transport fixtures read full requests and join their worker threads.

The author, indykish, explicitly records checker retirement and the production, incident, rollout-identity and full-Linux deferrals. Those intentional scope decisions are not findings. Final-head aggregate checks remain assigned to CI; this review did not execute tests.

Reviews (1) · Last reviewed commit: "fix(chat): bound tool updates and close ..." · Reviewed by Greptile

@vercel

vercel Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
agentsfleet-agents-dev Ready Ready Preview Nov 2, 2026 4:28am UTC
agentsfleet-app Ready Ready Preview Nov 2, 2026 4:28am UTC
agentsfleet-website Ready Ready Preview Nov 2, 2026 4:28am UTC

Request Review

@codecov

codecov Bot commented Nov 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@indykish indykish changed the title fix(fleets): clarify chat and preserve repair evidence fix(fleets): finish M224 evidence and simplify chat Nov 2, 2026
@indykish
indykish marked this pull request as ready for review November 2, 2026 04:28
@indykish
indykish merged commit 77147e0 into main Nov 2, 2026
55 checks passed
@indykish
indykish deleted the feat/m224-ci-campaign branch November 2, 2026 04:43

This branch was successfully deployed

3 active deployments
Preview – agentsfleet-app — 9db0ff63 Deployed Nov 2, 2026 by vercel[bot]
Preview – agentsfleet-agents-dev — 9db0ff63 Deployed Nov 2, 2026 by vercel[bot]
Preview – agentsfleet-website — 9db0ff63 Deployed Nov 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant