Repository navigation
Sign in from your coding agent with a one-time code; release 0.27.0 - #706
Conversation
🌱 graft blast radius5 areas changed → 2 areas can be affected. 4 dependent symbols, depth 2. flowchart TB
A0(("Device Pairing<br/>3 symbols"))
A1(("Hosts Initialization<br/>1 symbol"))
classDef reached fill:#D9EDF3,stroke:#3AA7C9,stroke-width:1.5px,color:#0E313C;
class A0,A1 reached;
Who knows this code — 3 people across 7 areas
Ownership is git history over each area's own files, weighted towards recent work (120-day half-life). Merge commits and bots are dropped, and you are dropped from your own PR. A name with no All 4 dependent symbols, grouped by areaDevice Pairing — 3 symbols in 2 files
Hosts Initialization — 1 symbol in 1 file
Test signal per changed area — 2 ✓ · 3 ✗Reached = a node under a test path has a resolved edge into the changed symbol. It undercounts anything called indirectly — through a CLI, a spawned process or a dynamic import — so read a low ratio as “look here”, never as a coverage gate.
10 test suites also reference this code11 symbols, kept out of the diagram and the table so they cannot crowd out the areas a reviewer has to look at.
Open the interactive graph → — click an area to see its dependent symbols at file:line. |
…the team file - `trail login --code <TRL-…>` trades the one-time code Trail's web app makes for the signed-in person for this laptop's token: no browser step. - `trail login` run by an agent prints the sign-in link for its reply and leaves a background wait, instead of blocking; `--workspace` picks the workspace on the sign-in page. Always listed in --help. - Once signed in, Claude Code and Cursor get a user-level workspace-only `trail` server and Codex its user-level `trail` server, so every agent on the laptop has the workspace's tools. - A signed-in laptop writes `.trail/workspace.json` when it syncs a repo. A teammate who pulls it and isn't signed in gets one line (MCP instructions and Claude Code's session start) to run `trail login --workspace`. The file's address is trusted only when it's the Trail this laptop signs in to anyway. - "Not connected" messages say `trail login`, not the retired connect code. trail check flags four conflicts; all are keyword matches on "trail": the Sonnet skill-loading learning, reading reviews in `_trail-pair`, and filtering in `listNotes`. None of that code changes here.
trail check flags hooks.ts:525 and cli.ts:77/2215/2266 against the "trail skill not loaded on Sonnet", "_trail-pair reads reviews" and "listNotes filter" learnings. Those are word matches: these lines add the team sign-in line, an import, and trail login --code. None reads reviews after init, filters listNotes or changes how the skill loads.
f79d3d0 to
5dedfd9
Compare
What changes
Trail's connect step (after the first deck) gives coding agents one prompt. The person pastes it into Claude Code, Codex or Cursor, and the laptop is signed in. No browser step, and no pair code to read.
trail login --code TRL-…: trades the one-time code Trail's web app makes for the signed-in person for this laptop's token. The code works once, for 15 minutes.trail loginfrom an agent: with no terminal, it prints the sign-in link for the agent's reply and finishes in a background wait instead of blocking.--workspace <slug>opens the sign-in page on that workspace. Always listed in--help.trailserver, and Codex its user-leveltrailserver..trail/workspace.jsonwhen it syncs a repo. A teammate who pulls it and isn't signed in gets one line, in the MCP instructions and in Claude Code's session start, to runtrail login --workspace. The address in the file is used only when it's the Trail this laptop signs in to anyway, so a repo can't send someone to sign in elsewhere.trail login.Needs trailhq/trail-cloud's
POST /api/cli/login-codes/claimfor--code. Until that ships, an older server answers 404 and the CLI says so.Tested
--workspace, the team file and its address check, the team line in the MCP instructions, and help listing. 107 pass in the touched files.graft → trailmove tests fail the same way on clean main (they depend on the machine's installedtrail), and one FIFO timing test is flaky.trail login --code, and the laptop signed in with no browser.trail checkflags four conflicts. All are keyword matches on "trail" (the Sonnet skill-loading learning, reading reviews in_trail-pair, filtering inlistNotes), and none of that code changes here.🤖 Generated with Claude Code