Skip to content

feat: the observe beat — chant reads the carved resource live while Terraform still owns it (#254, chant#1647) - #308

Merged
lex00 merged 1 commit into
mainfrom
carve-observe-beat
Aug 30, 2026
Merged

feat: the observe beat — chant reads the carved resource live while Terraform still owns it (#254, chant#1647)#308
lex00 merged 1 commit into
mainfrom
carve-observe-beat

Conversation

@lex00

@lex00 lex00 commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

The last deferred beat of the carve walkthrough's live tier. After Emit, "▶ watch chant read it live" runs chant lifecycle diff prod --live --json in the carveout with AWS_ENDPOINT_URL pointed at the scratch Floci. The carved bucket reads observed — EXTERNAL, ownership foreign — which is the walkthrough's claim made checkable: live, outside every stack, still Terraform's.

  • runCarveObserve (src/carve-actions.ts): live tier only, refuses before Emit, read-only. The verdict is chant's, never invented here — observed / unobserved (a hole in the read is not a verdict about the resource) / missing (one honest local cause: a demo-copy chant predating the identity read path).
  • POST /api/carve/observe with the same select discipline as emit/bridge.
  • The Emit step's button + one-line verdict row, with the retypeable command echoed (no host tmpdir in it).
  • The chant#1647 deferral text drops everywhere it lived: example-carve/README.md, docs/using/carve.mdx, the Advise step's live note, the cli.ts/carve-live.ts headers.

Version floor: the identity read path landed in chant 0.44.10 (chant#1684), but its ListResources fallback (chant#1695) — the path the emulator actually takes — first published in 0.44.12 (the 0.44.11 tag never reached npm). main already floors example-carve at ^0.44.12, so the pin needed no change; the in-text references say ≥ 0.44.12.

Tests: fake-chant coverage for the three verdicts + refusals (src/carve-actions.test.ts), observeSummary verdict lines (web/carve-steps.test.js). Full suite: 61 files, 1035 tests, green; tsc clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Rfs1mLVWmwginHnDTg75sG

…erraform still owns it (#254, chant#1647)

After Emit on the --live tier, "▶ watch chant read it live" runs
`chant lifecycle diff prod --live --json` in the carveout with
AWS_ENDPOINT_URL pointed at the scratch Floci. The carved bucket reads
observed — EXTERNAL, ownership foreign — which is the walkthrough's
claim made checkable: live, outside every stack, still Terraform's.

Read-only, live tier only, refuses before Emit. The deferral text drops
everywhere it lived (README, carve.mdx, the Advise step's live note,
the cli/carve-live headers). example-carve/app floors chant at ^0.44.12:
the identity read path landed in 0.44.10 (chant#1684) but its
ListResources fallback (chant#1695) — the path the emulator actually
takes — first published in 0.44.12.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rfs1mLVWmwginHnDTg75sG
@lex00
lex00 merged commit d1fa0bf into main Aug 30, 2026
3 checks passed
lex00 added a commit that referenced this pull request Aug 30, 2026
…through a bounded pool (#310)

Since 0.10.1: the carve walkthrough's last deferred beat (#308 — chant
reads the carved resource live while Terraform still owns it, chant#1647),
the estate-wide drift poll and source watcher (#303), the OCI
HelmRepository progressing fix (#302), the estate grid layout (#304), the
0.44.12 IR fixture (#305), and the bounded member-read pool (#306).


Claude-Session: https://claude.ai/code/session_01Rfs1mLVWmwginHnDTg75sG

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@lex00
lex00 deleted the carve-observe-beat branch August 30, 2026 03:23
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