Skip to content

test(examples-chat): pin no-nav-loop invariant#541

Merged
blove merged 2 commits into
mainfrom
claude/nav-loop-test
May 25, 2026
Merged

test(examples-chat): pin no-nav-loop invariant#541
blove merged 2 commits into
mainfrom
claude/nav-loop-test

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 25, 2026

Summary

Adds a regression guard for the URL↔signal sync invariant that every PR in the routing chain (#500/#504/#514/#518/#527) was dancing around: when the URL→signal effect hydrates threadIdSignal from /embed/<id>, the signal→URL effect MUST see signal===urlId and short-circuit. Without the guard we'd loop:

URL → signal → router.navigate → URL → signal → ...

The test asserts zero NavigationEnd events fire between initial navigateByUrl and end of detectChanges — proving the compare-and-set guard at demo-shell.component.ts (signal→URL effect) does its job.

Follow-up: Minting service Vercel deploy

Unrelated to this PR but worth flagging: the Minting service deploy job has been red on the last 4 main runs. Error:

The provided path "~/work/.../apps/minting-service/apps/minting-service" does not exist

The Vercel project for minting-service has its Root Directory set to apps/minting-service in the Vercel dashboard. The workflow runs vercel pull from working-directory: apps/minting-service, so Vercel computes the root as <cwd>/<configured-root> and the path doubles.

Fix (Vercel dashboard, no code change required): set the project's Root Directory to empty/blank.

Test plan

  • 33/33 examples-chat-angular unit tests passing locally (18 in demo-shell.spec, +1 new)
  • CI green on this PR

🤖 Generated with Claude Code

Adds a regression guard for the invariant every PR in the routing
chain (#500/#504/#514/#518/#527) was dancing around: when the URL→
signal effect hydrates threadIdSignal from /embed/<id>, the
signal→URL effect MUST see signal === urlState().threadId and
short-circuit. Without that guard we'd loop:
  URL → signal → router.navigate → URL → ...

The test asserts zero NavigationEnd events fire between the initial
navigateByUrl and the end of detectChanges — proving the compare-
and-set guard at demo-shell.component.ts (signal→URL effect) does
its job.

33/33 examples-chat-angular unit tests passing locally.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 25, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview, Comment May 25, 2026 4:58pm

Request Review

@blove blove merged commit 4e111a6 into main May 25, 2026
26 checks passed
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