Demo harness is broken: missing manifest, stale pipelock naming #540

Open
opened 2026-07-27 21:58:33 -04:00 by didericis-claude · 0 comments
Collaborator

scripts/demo-record.sh cannot run. The demo has been broken since eafd1c1f (2026-06-04).

What's broken

  1. Missing manifest. eafd1c1f deleted bot-bottle.demo.json as a "pre-YAML-migration artifact", but scripts/demo-setup.sh:25 still runs cp bot-bottle.demo.json bot-bottle.json under set -euo pipefail. Setup exits non-zero, so demo-record.sh and demo.sh both die before launching anything.

  2. Manifest format changed. The replacement cannot be a drop-in: manifests are per-file Markdown now, and bot_bottle/manifest/index.py:222 deliberately ignores a bottles/ dir in CWD ("the filesystem layout IS the trust boundary", PRD 0011). The demo bottle has to be installed into $HOME/.bot-bottle/bottles/, which means setup/teardown need a real backup-and-restore path over live config rather than the old throwaway bot-bottle.json swap.

  3. Stale pipelock naming. docs/demo.tape describes egress as mediated by "pipelock" and by "pipelock + git-gate companion containers". pipelock is gone; egress is now bot-bottle's own mitmproxy scanner, git-http gate, and supervise endpoint, all inside the single bot-bottle-gateway container.

  4. Stale invocations. scripts/demo.sh:31 still calls ./cli.py start demo despite cd9f023f moving every instruction to bot-bottle. demo-setup.sh:46 pre-warms Dockerfile.git-gate, which no longer exists.

Behavioral note

Probe 3 posts a ghp_-shaped synthetic token to an allowlisted host. Under the current default dlp.outbound_on_match: supervise, that request is held open awaiting operator approval for up to EGRESS_TOKEN_ALLOW_TIMEOUT_SECONDS (300s) instead of returning immediately. The demo route needs block to reproduce the original hard-403 beat and keep the recording from stalling.

Done when

  • Demo bottle + agent exist as Markdown manifests in the current format
  • demo-setup.sh / demo-teardown.sh install and cleanly restore over $HOME/.bot-bottle/, verified against a scratch HOME
  • docs/demo.tape and scripts/demo.sh describe the gateway, not pipelock, and invoke bot-bottle
  • docs/demo.gif re-recorded against the current architecture
`scripts/demo-record.sh` cannot run. The demo has been broken since `eafd1c1f` (2026-06-04). ## What's broken 1. **Missing manifest.** `eafd1c1f` deleted `bot-bottle.demo.json` as a "pre-YAML-migration artifact", but `scripts/demo-setup.sh:25` still runs `cp bot-bottle.demo.json bot-bottle.json` under `set -euo pipefail`. Setup exits non-zero, so `demo-record.sh` and `demo.sh` both die before launching anything. 2. **Manifest format changed.** The replacement cannot be a drop-in: manifests are per-file Markdown now, and `bot_bottle/manifest/index.py:222` deliberately ignores a `bottles/` dir in CWD ("the filesystem layout IS the trust boundary", PRD 0011). The demo bottle has to be installed into `$HOME/.bot-bottle/bottles/`, which means setup/teardown need a real backup-and-restore path over live config rather than the old throwaway `bot-bottle.json` swap. 3. **Stale `pipelock` naming.** `docs/demo.tape` describes egress as mediated by "pipelock" and by "pipelock + git-gate companion containers". pipelock is gone; egress is now bot-bottle's own mitmproxy scanner, git-http gate, and supervise endpoint, all inside the single `bot-bottle-gateway` container. 4. **Stale invocations.** `scripts/demo.sh:31` still calls `./cli.py start demo` despite `cd9f023f` moving every instruction to `bot-bottle`. `demo-setup.sh:46` pre-warms `Dockerfile.git-gate`, which no longer exists. ## Behavioral note Probe 3 posts a `ghp_`-shaped synthetic token to an allowlisted host. Under the current default `dlp.outbound_on_match: supervise`, that request is *held open* awaiting operator approval for up to `EGRESS_TOKEN_ALLOW_TIMEOUT_SECONDS` (300s) instead of returning immediately. The demo route needs `block` to reproduce the original hard-403 beat and keep the recording from stalling. ## Done when - Demo bottle + agent exist as Markdown manifests in the current format - `demo-setup.sh` / `demo-teardown.sh` install and cleanly restore over `$HOME/.bot-bottle/`, verified against a scratch `HOME` - `docs/demo.tape` and `scripts/demo.sh` describe the gateway, not pipelock, and invoke `bot-bottle` - `docs/demo.gif` re-recorded against the current architecture
didericis-claude added the Kind/DocumentationKind/Bug labels 2026-07-27 21:58:33 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: didericis/bot-bottle#540