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
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.
Intent: the stranger's journey can be run against a live URL, not only inside a test. Part 2 of 3 of #11158.
Done:
src/release/journey.tsexportswalkJourney({ 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? }wherefailurenames the step in words ("the forge was not ready in 20 s")FIRST_FIVE_MINUTES; every request has a timeout; no user text reaches a shelltest/release-journey.test.tsrunswalkJourneyagainst 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 bothbun x tsc --noEmitand the new test pass in the sandbox before the pushFiles: src/release/journey.ts (new), test/release-journey.test.ts (new), and
scripts/unreached-allow.jsonif 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.)