You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Close the B9 gap (cross-app hops were catalogued under Phase 3 but never built):
- New ExternalNode + `exits-app` / `enters-at` edge kinds.
- exits-app: navigate / window.open / window.location.assign|replace, and
`<a href>` / `<Link to>`, to an absolute/protocol-relative URL or a
mailto:/tel:/sms: scheme → an edge to an external destination (deduped by
host). OAuth redirects, payment gateways, and email links all leave the app.
- enters-at: deep-link / OAuth-callback route paths (/auth/…, /callback, oauth,
sso, …) → an edge from an inbound external node.
- journeys() renders app-exits as a terminal `exit` step; CLI glyph ⏏.
Schema regenerated (external node kind + two edge kinds). New `externals` eval
check + fixture b9-cross-app-hops (Google OAuth, Stripe window.open, mailto,
/auth/callback). 41 core + 3 vision + 105 parser tests pass; eval green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: TRACKER.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -214,6 +214,11 @@ The heart of the project. C1 and B1 live here.
214
214
**Build:** feature-flag detection (configurable call names: `useFlag`, `useFeature`, `isEnabled`) and role checks in render branches → `EdgeCondition{kind:"flag"|"role"}` on the enclosed `renders`/`handles` edges.
215
215
**Accept:** fixture `g5-feature-flag` green: flag-gated UI's journey step carries the flag name. **Gate 3 passes.**
216
216
217
+
### [x] 3.6 Cross-app hops (added — was a catalog gap)
218
+
**Failure modes:** B9
219
+
**Build:**`ExternalNode` + `exits-app` / `enters-at` edges. Navigate/`window.open`/`window.location.assign`/`<a href>`/`<Link to>` to an absolute URL or `mailto:`/`tel:` scheme → `exits-app` (event or component → external, deduped by host). Deep-link/OAuth-callback route paths → `enters-at` from an inbound external node. Journeys reaching an external end with an `exit` step.
"note": "Cross-app hops: an OAuth redirect (window.location.assign), a payment gateway (window.open), and a mailto link all leave the app → exits-app edges to external destinations; an /auth/callback route is an inbound entry point → an enters-at edge. Journeys that reach an external end with an 'exit' step.",
0 commit comments