Skip to content

epic: Fable 5 parity — post-#100 verification findings & follow-ups #196

Description

@OGtwelve

Why

Epic #100 ported the Claude Code Fable 5 harness to aitm (29 children, all merged, shipped in v0.0.23). This epic tracks a full post-merge verification pass of that work — behavioral probes of every compat primitive against the real harness, a four-part component audit against the decomposition, and seven live aitm start runs on sandbox repos — and the defects and parity gaps it surfaced.

Headline: the ported surface is broad and mostly faithful, and all eight second-pass runtime-failure classes (#122#129) are closed in code. But two P0 bugs share one root causeai@6's onStepFinish/prepareStep expose response.messages as a cumulative list, not a per-step delta, and two consumers misread it — which silently guts the context-management arc in production. Several P1 gaps mean a few #100 checkboxes shipped only the library half (Skills, background execution).

Verification method and full findings (evidence, file:line, live-run logs) are recorded outside the tracker; each item below is independently reproduced. Baseline at time of audit: typecheck + lint clean, aitm 902 / compat 250 node tests green.

P0 — context-management arc broken in production

P1 — behavior gaps / library-only deliveries

P2 — filed follow-ups

P2/P3 — tracked, not filed (deliberately)

Real but low-value, covered by another item, or needing a design decision before a ticket is worthwhile:

P3 cosmetic (report-only, models tolerate — no ticket planned): Read line numbers are N\t rather than right-aligned cat -n padding; env-block labels differ slightly ("Working directory" vs "Primary working directory"); zod tool schemas silently strip unknown input keys (a model emitting a Claude-Code-only param gets the default path silently).

Already-open, pre-audit follow-ups (not part of this pass, listed for context)

#131 (run Logger into loop), #132 (typecheck:tests gate), #139 (step-timeout dedup), #141 (reminder contract for ci-fix/take-over), #150 (cache_control vs routing), #154 (bashOutput partial-line buffer), #168 (usage ledger latency+retry).

Out of scope (verified correct, no action)

The audit re-checked every deliberate scope-out in #100 against its issue text and confirmed the rationale holds: sandboxed bash + dangerouslyDisableSandbox (no-containers stance), interactive flow-control tools (B11), scheduling/wakeup daemon surfaces (B12), Artifact/ReportFindings (B13 — PR-prose/JSONL remaps verified present), MCP server surface, image/PDF/notebook Read rendering, model-facing task registry (B5), Workflow JS orchestration (B10 — stage machine + PlanGraph fill the slot).

Priority order

Fix P0 first (#175, #176 — small changes, revive the whole context arc), then the XS/S P1 bugs (#177, #178, #185), then #179/#180, then the library-only wirings (#181, #182). P2 as capacity allows; docs (#183) is cheap and high-visibility.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions