test(dev): pin absent nested route discovery (#717) - #720
Conversation
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ffa7d5c07d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const publications = Array.from({ length: 5 }, () => Promise.withResolvers<string>()); | ||
| const publication = (index: number): Promise<string> => | ||
| within(publications[index]!.promise, 20_000 * timeScale); |
There was a problem hiding this comment.
Clear publication timeout timers after each event
Each successful publication() call races against the file-local within timer but never clears that losing timer, so this test leaves five referenced timers active. In CI, timeScale is 4, making each timer 80 seconds and allowing the final one to delay worker shutdown for roughly 80 seconds after the test finishes; tests/support/eventually.ts already provides a within implementation that clears its timer in finally specifically to avoid this suite-shutdown stall.
Useful? React with 👍 / 👎.
Summary
src/events/**andsrc/mcp/*/tools/**do not exist at startup.sessionStartroute, asserting one published epoch adds/removes both Claude and Codex hook outputs.Closes #717.
Root-cause disposition
Fresh source at the reported
b435f7b917already watches the project root and passes the reported flow without a route-kind watcher. The original live command launched the ignored builtdistwithout a matching full build; afterpnpm build, the same audiobook example observedsrc/events/session/start.tsimmediately and emitted both hook wrappers. Adding a second watcher path would duplicate the existing root watcher, so this PR records the missing acceptance instead of manufacturing a production change.No changeset or en/zh docs update: this is test-only and changes no published behavior.
Local gate
pnpm build && pnpm typecheck && pnpm lint && pnpm test:unit— passed; unit pool: 4,405 passed, 6 skipped.examples/audiobook-curatordev session — SSE observed the nested route invalidation and the active manifest contained Claude/CodexsessionStarthooks.Deslop
Deslop: GPT-5.6 Sol, 1 edit. Collapsed fixture setup onto the existing project-fixture helper and removed a bespoke timeout wrapper.
Self-review
Reviewer: Claude Fable 5.1 Thinking High (
change-risk-reviewer).mkdir/writeFiledebounce race.withinhelper and build errors remain in Rstest output; the separate directory/file writes intentionally reproduce Dev watcher misses routes created inside a previously absent nested directory #717, and an early empty publication fails the immediate manifest assertion rather than false-passing.