Skip to content

Launch review: module cleanup, new docs, and a behavior-focused test suite - #17

Merged
jacobprall merged 5 commits into
mainfrom
launch-review-fixes
Oct 19, 2026
Merged

jacobprall merged 5 commits into
mainfrom
launch-review-fixes

Conversation

@jacobprall

Copy link
Copy Markdown
Collaborator

Brings the template in line with the launch checklist (code review and docs).

Code

  • Split src/types.ts into focused modules: question.ts (public API contract), investigation.ts, manifest.ts, bot-config.ts, util.ts, runner/protocol.ts, runner/providers.ts.
  • Split src/slack.ts into src/slack/ (events, client, transcript, format, routes).
  • Broke the runner's main.ts/session.ts import cycle with runner/events.ts and runner/model.ts.
  • Unified logging on createLog across the API, Slack adapter, sandbox client, and cron. Event names and fields are unchanged; every line now also carries level and msg.
  • SANDBOX_PROVISION_TIMEOUT_MS now actually bounds opening an investigation Sandbox (restore, boot, verify.sh, manifest read). Before, it only padded the task timeout.
  • The internal network policy type uses the API's type/domains names; wirePolicy is still the single conversion point.
  • A failed investigation now logs investigation_failed with the runner's (redacted) message, so a bad model key isn't invisible.
  • The snapshot build now fails if the builder can't confirm the runner is non-dumpable, instead of producing a snapshot every restore would refuse.
  • Fixed the API service's buildFilter in render.yaml (it pointed at the deleted src/slack.ts and missed src/log.ts), stale comments, a shadowed config, and the decorative banners.

Docs

  • README.md is now focused on what it is, why it matters, and getting running (100 lines, down from ~500).
  • New docs/QUICKSTART.md (setup, deploy, Slack, local dev, customizing, config reference, operations), docs/WALKTHROUGH.md (architecture, layout, question API, workflow, sandboxes, runner, security boundary), and docs/TAKEAWAYS.md (reusable patterns).
  • docs/design.md, docs/sandboxes.md, and docs/channels.md are folded into the new docs and removed. Several claims in them that no longer matched the code were corrected.

Tests

  • Cut from about 250 tests to 96 (95 run, plus the live model smoke test that's skipped without a key). They test through public entry points (HTTP routes, workflow tasks, sandbox providers, the runner CLI) and keep the security-relevant properties: credential ordering, egress refusal, the non-dumpable check, citation validation, signature checks, and the read-only shell policy.

pnpm typecheck and pnpm test pass locally.

Made with Cursor

jacobprall and others added 4 commits October 19, 2026 15:10
- Split src/types.ts into question, investigation, manifest, bot-config,
  util, runner/protocol, and runner/providers modules
- Split src/slack.ts into src/slack/ (events, client, transcript, format, routes)
- Break the runner's main/session import cycle with runner/events.ts and runner/model.ts
- Log everything through createLog, including the sandbox client and cron
- Make SANDBOX_PROVISION_TIMEOUT_MS bound opening an investigation Sandbox
- Rename the internal network policy to the API's type/domains vocabulary
- Log the runner's failure message when an investigation fails
- Fail the snapshot build when the runner can't be confirmed non-dumpable
- Fix the API build filter, stale comments, shadowed config, and banners

Co-authored-by: Cursor <cursoragent@cursor.com>
Fold docs/design.md, docs/sandboxes.md, and docs/channels.md into the new
docs, and narrow the README to what it is, why it matters, and getting running.

Co-authored-by: Cursor <cursoragent@cursor.com>
Test through public entry points (HTTP routes, workflow tasks, sandbox
providers, the runner CLI) and keep the security-relevant properties;
drop tests of private helpers, exact strings, and duplicate cases.

Co-authored-by: Cursor <cursoragent@cursor.com>
…race id

Correct the docs where they drifted from the code, cut duplication between
QUICKSTART and WALKTHROUGH, document investigation_failed and the build's
non-dumpable check, and note that render workflows dev loads .env.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@jacobprall
jacobprall merged commit cc4944e into main Oct 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant