trace/edges

A mockup of the html exporter's two-edge model: continue_as renders as an inline AgentFrame divider, and spawn_agent renders as a drill-in card. Click any node to follow the call tree. This page is a design exploration: everything below is static, hand-written sample data, not a render produced by lash-export. The continue_as inline AgentFrame-switch divider now ships in lash-export's multi-session tree view; the spawn_agent drill-in card shown here stays illustrative — the real exporter presents subagents as sibling views.

root session · s1·a47e

Audit auth-related code paths and recent migrations

Root session of the run. Two parallel spawn_agent children gather inventory, then a continue_as AgentFrame switch carries the synthesis into frame s4·e51a.

views1·a47e · root
modelclaude-opus-4-7
turns8 (this view) + 4 AgentFrame (s4)
subagents2 — auth_files, db_migrations
frame→ s4·e51a · continue_as
tokens28.4k in · 3.1k out · 18% cache read
role
edge
e0
Audit auth-related code paths and recent migrations.

Audit the codebase: list every file under src/auth/ that handles session tokens, summarise schema migrations since v3, and produce a single ordered list of the riskiest places to land a compliance fix.

e1
Plan: spawn two parallel explorers, then continue_as for the synthesis.
e3
auth_files returned 4 paths. Now spawn db_migrations in parallel.
e5
Both explorers returned. Context is at 78%. Invoke continue_as with the synthesis seed.
↪ continued as Synthesise the audit into a ranked compliance plan.
s1·a47e s4·e51a

Take the auth-file inventory and the migration summary; produce a single ranked list of compliance touchpoints. Each item gets a one-line rationale and an effort estimate. Stop when the list is < 12 items.

seed · 4 entries
problemprojected auth_filesglobal · 4 paths migration_summaryglobal · 1.4k findingsglobal · 12 entries
parent ctx78% seed2.8 kb turns8 reasoncontinue_as
e6
Synthesise the audit into a ranked compliance plan.

Take the auth-file inventory and the migration summary; produce a single ranked list of compliance touchpoints…

e7
Cross-reference auth_files against migration_summary; rank by exposure, then by effort.
e8
Ranked plan returned (8 items).

1. cookie_jar.rs: refresh-token rotation lands in the same write as session_secret; partition first. ~½ day
2. token_store.rs: v5 adds refresh_token_hash, but the read path still falls back to plaintext on cache miss. ~1 day
3. …

subagent · s2·b9c1 · spawned from root

auth_files — list session-token handlers

Subagent spawned from root at e2. Same shape as the root view: full transcript, full controls, full minimap. Use the breadcrumb above to return.

views2·b9c1 · subagent
capabilityexplore
parentroot → entered at e2
depth1
duration14.2s · 4.1k tokens
returned{ files: [4 paths] }
e0
List files under src/auth/ that handle session tokens.

List files under src/auth/ that handle session tokens, with the read paths grouped by entry point.

e1
grep -r "session_token" src/auth → resolve, dedupe, finish.
e2
session_token in src/auth — 4 unique files
e3
{ files: ["src/auth/session.rs", "…/middleware.rs", "…/cookie_jar.rs", "…/token_store.rs"] }
subagent · s3·d23f · spawned from root

db_migrations — summarise migrations since v3

Subagent that itself spawned a deeper child (migration_v5). Drill in further to see depth 2.

views3·d23f · subagent
capabilityexplore
parentroot → entered at e4
depth1 — has 1 child
duration22.7s · 7.8k tokens
returned{ summary: "v5 introduces session_secret …" }
e0
Summarise migrations/ schema changes since v3.
e1
read migrations/, group by version, fan out to a sub-explorer per migration.
e3
migration_v5 returned columns. Compose summary per version.
e4
{ summary: "v5 introduces session_secret + refresh_token_hash …" }
subagent · s3a·772b · depth 2

migration_v5 — risk-flagged columns

Grandchild, spawned from db_migrations, which itself was spawned from root. The breadcrumb traces the whole way back.

views3a·772b · subagent
capabilityexplore
parentdb_migrations → entered at e2
depth2
duration9.4s · 3.0k tokens
returned{ columns: ["session_secret", "refresh_token_hash"] }
e0
Extract column names tagged risk:* from migrations/v5.sql.
e1
read v5.sql; pluck columns whose comment matches /risk:.*/.
e2
{ columns: ["session_secret", "refresh_token_hash"] }

↪ AgentFrame · inline

continue_as is linear. The new frame's entries flow in the same view, behind a sodium-bracketed divider that names the seam: task, seed (projected vs global), parent context %, the new frame id. One scroll, one document.

▾ subagent · drill-in

Spawn_agent becomes a card you click into. The subagent gets its own full view: same hero, same controls, same minimap as the root. No nesting hacks, no width-cascade problems, no awkward squeeze.

breadcrumb · always visible

The top bar shows where you are: root > db_migrations > migration_v5. Click any segment to jump back. Browser back works (history.pushState). The lineage strip below shows the whole tree as a sibling-aware map.

same shape · everywhere

Every view is just a session render. The exporter already does that for one .db; we just iterate per descendant session, link them with the breadcrumb, and bake them all into one self-contained html file.