Skip to content

demo: ask the investigator with the token compose resolved — the shell, then ./.env, then the default - #14

Merged
itswl merged 1 commit into
mainfrom
demo-reads-dotenv-token
Oct 19, 2026
Merged

itswl merged 1 commit into
mainfrom
demo-reads-dotenv-token

Conversation

@itswl

@itswl itswl commented Oct 19, 2026

Copy link
Copy Markdown
Owner

Compose interpolates ${HOOKPROBE_TOKEN:-quickstart-token} from the shell environment, then ./.env, then the default. demo.sh read only the shell and fell back to the default, so a directory whose .env sets the token gave a stack the demo could not talk to: every lookup from step 5 on answered 401. That is what happened on 2026-10-19 running the 0.7.0 check from a checkout whose .env is a deployment's, and it cost one false alarm before the token hashes were compared.

The script now resolves the token in compose's order with a four-line dotenv reader (export prefix, single or double quotes, last line wins, prefix names do not match) and says in its health section when the token came from ./.env.

Read back from a scratch directory holding the compose file, the script and a .env setting a different token: the default token answered 401 on /v1/runs (so compose had taken the .env value), the demo printed investigator token: taken from ./.env, as compose did, ran all nine steps and exited 0; down -v removed the stack.

docs/releasing.md keeps the empty-directory rule and says why it still stands (the same .env also chooses the investigator's runtime and model, and a stranger has neither), and lists 0.7.0 among the releases whose tag message is the note.

Gate: STACK GATE GREEN locally; CI read back before merging.

…l, then ./.env, then the default

Compose interpolates ${HOOKPROBE_TOKEN:-quickstart-token} from the shell environment, then ./.env, then the default; demo.sh read only the shell and fell back to the default, so a directory whose .env sets the token gave a stack the demo could not talk to: every lookup from step 5 on answered 401 (2026-10-19, from a checkout whose .env is a deployment's). The script now resolves the token in compose's order with a four-line dotenv reader (export prefix, quotes, last line wins) and says in its health section when the token came from ./.env.

Read back from a scratch directory whose .env set a different token: the default token answered 401 on /v1/runs, the demo printed the new line, ran all nine steps and exited 0; the stack was removed with down -v.

docs/releasing.md keeps the empty-directory rule and says why it still stands (the same .env also chooses the runtime and the model) and lists 0.7.0 among the releases whose tag message is the note.
@itswl
itswl merged commit 43e1ceb into main Oct 19, 2026
6 checks passed
@itswl
itswl deleted the demo-reads-dotenv-token branch October 19, 2026 06:10
itswl added a commit that referenced this pull request Oct 26, 2026
- runs: resolve a session key by matching iterdir() entries on the sanitized filename, so no path is ever built from the key (py/path-injection #14).
- engine_replay: replace the Title: regex with a line scan, so the prompt cannot reach a backtracking pattern (py/polynomial-redos #10).
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