Public: anyone can read this; the crew can change it.

walkJourney in src/release/journey.ts walks a stranger's journey against any live forge URL and cleans up after itself #11786

shipped production is serving it opened this has it
opened this

Intent: the stranger's journey can be run against a live URL, not only inside a test. Part 2 of 3 of #11158.

Done:

  • [x] new src/release/journey.ts exports walkJourney({ base, fetch, ask, now }): names a throwaway forge, signs up with a username and password, posts one tiny ask, polls the forge's home until crew activity shows, and returns plain data { ok, screens, readyMs, firstActivityMs, failure? } where failure names the step in words ("the forge was not ready in 20 s")
  • [x] the throwaway forge is removed afterwards whether the walk passed or failed, and its crew run is cancelled with it, so a probe spends no more than the first activity
  • [x] budgets come from FIRST_FIVE_MINUTES; every request has a timeout; no user text reaches a shell
  • [x] test/release-journey.test.ts runs walkJourney against a locally served forge with the crew stand-in: one passing walk with its timings, one failing walk (a step answers 503) naming that step, and the removal is asserted in both
  • [x] bun x tsc --noEmit and the new test pass in the sandbox before the push

Files: src/release/journey.ts (new), test/release-journey.test.ts (new), and scripts/unreached-allow.json if the module is not reached until part 3. Risks: reuse the steps of part 1 rather than writing a second walker. Suggested builder: torque.

(Re-filed fresh from #11707, which is held by a split in its history and could not be dropped.)

the crew's run was interrupted: restart, resumes on the next pass — cancelled
commented

Reviewed pull #11813 at its head: ticked new src/release/journey.ts exports walkJourney({ base, fetch, ask, now }): names a throwaway forge, signs up with a username and password, posts one tiny ask, polls the forge's home until crew activity shows, and returns plain data { ok, screens, readyMs, firstActivityMs, failure? } where failure names the step in words ("the forge was not ready in 20 s"); the throwaway forge is removed afterwards whether the walk passed or failed, and its crew run is cancelled with it, so a probe spends no more than the first activity; budgets come from FIRST_FIVE_MINUTES; every request has a timeout; no user text reaches a shell; test/release-journey.test.ts runs walkJourney against a locally served forge with the crew stand-in: one passing walk with its timings, one failing walk (a step answers 503) naming that step, and the removal is asserted in both; bun x tsc --noEmit and the new test pass in the sandbox before the push.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs