Several builder sessions run at once, each in its own worktree, and from the outside every one looks like a terminal printing tool calls. Asking "which plugin are you on?" cost a round trip every time. doxa-maps · bundler-2/work · ▶ research-map-plus-grid (cap-4) What it reports, in order: the bundle with the most recently modified UNCOMMITTED file (that is what "working on" means); else library/ or internal/ named as a scope, because an edit there is not one plugin's business and naming whichever bundle happens to be dirty would be a lie; else the last plugin touched in the recent commits, so the line still says something true at the moment work lands instead of going blank. The capability tier is read from manifest.json with the studio's own formula (5 - PT[type], plugin-studio.vue:293), not a table retyped here. Two copies of that mapping with nothing forcing agreement is the shape check:capability-citations exists to catch — the README once captioned a bundle cap-1 while the manifest said cap-2. Details that were wrong on the first cut and are now measured: the repo name comes from the remote, not the checkout directory, or every session gets labelled with a worktree name nobody recognises (wt-bundler-2); and the commit fallback uses `git log -m`, without which a MERGE commit lists no files and the line read "idle" immediately after landing work. Fail-soft throughout and never exits non-zero: no git, no branch; no manifest, no tier; nothing edited, "idle". A status line runs on every render, so one that errors or prints a stack trace is worse than none. ~172ms per render, no absolute paths (check:no-abs-paths). Verified across all five tiers plus the library/ and internal/ scopes; 7/7 pre, 18/18 post.
7 lines
118 B
JSON
7 lines
118 B
JSON
{
|
|
"statusLine": {
|
|
"type": "command",
|
|
"command": "bash .claude/statusline-plugin.sh",
|
|
"padding": 0
|
|
}
|
|
}
|