syntaur 0.45.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/dashboard/dist/assets/{_basePickBy-RQBuJKcX.js → _basePickBy-DgR0_P-o.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-_J7s4kD3.js → _baseUniq-C8_Ych09.js} +1 -1
- package/dashboard/dist/assets/{arc-_9SyUgKQ.js → arc-yMHz4vGa.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-C8LeFMgr.js → architectureDiagram-2XIMDMQ5-ColWcH3P.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-gMh0EPEh.js → blockDiagram-WCTKOSBZ-Bo8Npvfq.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-cHwecwLI.js → c4Diagram-IC4MRINW-B2ky8AT7.js} +1 -1
- package/dashboard/dist/assets/channel-CUTEvTdk.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-Bb2anYuQ.js → chunk-4BX2VUAB-CyF6Z6dx.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-DYIRGzA1.js → chunk-55IACEB6-BJOEnwNN.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-sgRWBbaF.js → chunk-FMBD7UC4-D3siQyQ4.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-DlYKMl_j.js → chunk-JSJVCQXG-DKGuxEMf.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-D0YDLAOF.js → chunk-KX2RTZJC-CNIWWO2F.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-D-Y-CUx6.js → chunk-NQ4KR5QH-DXt05c7h.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-D7FpSvb5.js → chunk-QZHKN3VN-CM63uYnf.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-CtXgQLdS.js → chunk-WL4C6EOR-Dqvl_14m.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-Bkoc7orC.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-Bkoc7orC.js +1 -0
- package/dashboard/dist/assets/clone-CltBg7cH.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-YbTaohoJ.js → cose-bilkent-S5V4N54A-WBLtT1w9.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-CMtwGAnP.js → dagre-KLK3FWXG-DIdQdwa7.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-D8wBMBAX.js → diagram-E7M64L7V-BEH6P_Sk.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-DfudLpiJ.js → diagram-IFDJBPK2-BuhxBcSy.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-CyMy61wE.js → diagram-P4PSJMXO-DPSNVVzN.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-BlB4ZQl9.js → erDiagram-INFDFZHY-DYJb_rF5.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-DbhDQJM3.js → flowDiagram-PKNHOUZH-B9_8BI26.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-DJFqteNi.js → ganttDiagram-A5KZAMGK-Bsg3QOhs.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-D8etA_mm.js → gitGraphDiagram-K3NZZRJ6-Cf5G9x_K.js} +1 -1
- package/dashboard/dist/assets/{graph-Ce86jeZn.js → graph-DyXfcrIH.js} +1 -1
- package/dashboard/dist/assets/index-C3kYxhbQ.js +567 -0
- package/dashboard/dist/assets/index-DKr21dk8.css +1 -0
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-Cx35U-h8.js → infoDiagram-LFFYTUFH-Bu1zlXs2.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-C04Y2nj8.js → ishikawaDiagram-PHBUUO56-fb8C-XRT.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-D8-cxbxE.js → journeyDiagram-4ABVD52K-smlBWs2O.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-DVKqMylP.js → kanban-definition-K7BYSVSG-Bz1AxFRE.js} +1 -1
- package/dashboard/dist/assets/{layout-98xZDpgu.js → layout-VsTD3onG.js} +1 -1
- package/dashboard/dist/assets/{linear-0jk_IwAc.js → linear-CE8xncGu.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-C337VWfr.js → mermaid.core-C0KQpDyW.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-8sNYGYEP.js → mindmap-definition-YRQLILUH-SRE5Immj.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-afcmzHxf.js → pieDiagram-SKSYHLDU-CaZ_aCcD.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-B4RjcpOq.js → quadrantDiagram-337W2JSQ-Dd6MIruu.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-CRavU6cI.js → requirementDiagram-Z7DCOOCP-BBXvP53l.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-DFomU3z-.js → sankeyDiagram-WA2Y5GQK-DnS1SMIm.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-CGKO7nmK.js → sequenceDiagram-2WXFIKYE-CLHJ1Uhx.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-BjFI1K8h.js → stateDiagram-RAJIS63D-B6vrAeYw.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-BeqNZKbk.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-BBo8XJFG.js → timeline-definition-YZTLITO2-BlHwGfnL.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-COd6i6TE.js → treemap-KZPCXAKY-D9kOGUYR.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-CGQweQ36.js → vennDiagram-LZ73GAT5-BpQgeveT.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-mfJ5So7N.js → xychartDiagram-JWTSCODW-DRch79fE.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/dashboard/server.js +1405 -210
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +2092 -1485
- package/dist/index.js.map +1 -1
- package/dist/launch/index.d.ts +19 -0
- package/dist/launch/index.js +528 -17
- package/dist/launch/index.js.map +1 -1
- package/package.json +1 -1
- package/platforms/SESSION-ID-RESOLUTION.md +41 -4
- package/platforms/claude-code/.claude-plugin/plugin.json +1 -1
- package/platforms/claude-code/hooks/session-cleanup.sh +25 -64
- package/platforms/claude-code/hooks/session-start.sh +35 -109
- package/platforms/claude-code/skills/track-session/SKILL.md +12 -60
- package/platforms/codex/.codex-plugin/plugin.json +1 -1
- package/platforms/codex/skills/track-session/SKILL.md +12 -60
- package/platforms/hermes/plugins/syntaur/__pycache__/__init__.cpython-312.pyc +0 -0
- package/platforms/hermes/plugins/syntaur/__pycache__/boundary.cpython-312.pyc +0 -0
- package/skills/track-session/SKILL.md +12 -60
- package/dashboard/dist/assets/channel-C36dnl_e.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-BsoGa6_a.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-BsoGa6_a.js +0 -1
- package/dashboard/dist/assets/clone-Bz6jW3OY.js +0 -1
- package/dashboard/dist/assets/index-DRng26Jg.js +0 -567
- package/dashboard/dist/assets/index-DzHQIE2n.css +0 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-BtxefYKD.js +0 -1
|
@@ -5,84 +5,36 @@ description: Use when the user asks to track, register, or log this Claude Code
|
|
|
5
5
|
|
|
6
6
|
# Track Session
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Attach a description and/or a project+assignment link to the current agent session's row in the Syntaur dashboard.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Plain registration is automatic now — the SessionStart hook registers every session (and the background scanner backfills any the hook missed), so this skill only matters for the one remaining manual case: adding a description or an explicit project/assignment link. The CLI self-resolves the calling session's id (env → process-tree markers → transcript scan); never pass a synthesized id.
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
14
|
User arguments: `$ARGUMENTS`
|
|
15
15
|
|
|
16
|
-
- (no args) —
|
|
17
|
-
- `--description "<text>"` —
|
|
18
|
-
- `--project <slug> --assignment <slug>` —
|
|
16
|
+
- (no args) — upsert the session row as-is (rarely needed; the hook already did this)
|
|
17
|
+
- `--description "<text>"` — attach a description
|
|
18
|
+
- `--project <slug> --assignment <slug>` — link to a project assignment
|
|
19
19
|
- `--description "<text>" --project <slug> --assignment <slug>` — both
|
|
20
20
|
|
|
21
21
|
## Workflow
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
Extract optional flags from the argument string:
|
|
26
|
-
- `--description "<text>"` or `--description <text>` — session description
|
|
27
|
-
- `--project <slug>` — project to link to
|
|
28
|
-
- `--assignment <slug>` — assignment to link to
|
|
29
|
-
|
|
30
|
-
### Step 2: Source the real session id + transcript path
|
|
31
|
-
|
|
32
|
-
Resolve the session id from *your* running process, in priority order:
|
|
33
|
-
|
|
34
|
-
1. `$CLAUDE_CODE_SESSION_ID` (or the peer `OPENCODE_SESSION_ID` / `PI_SESSION_ID`) if your runtime injects it.
|
|
35
|
-
2. Otherwise, read the most-recently-modified file under `~/.claude/sessions/<pid>.json` whose `cwd` matches `$(pwd)` and use its `sessionId` field. The transcript path is conventionally `~/.claude/projects/<encoded-cwd>/<sessionId>.jsonl`; include it if the file exists, otherwise omit.
|
|
36
|
-
3. Only as a last resort, fall back to the `sessionId` scalar in `.syntaur/context.json` (and the companion `transcriptPath` if present). This scalar is a shared, legacy hint a co-tenant sharing this workspace can clobber — never treat it as authoritative.
|
|
37
|
-
4. If no source yields an id, abort with: "Could not resolve a real Claude Code session id. Restart the Claude session so the SessionStart hook can populate `.syntaur/context.json`, or run `/rename <slug>` then try again."
|
|
38
|
-
|
|
39
|
-
DO NOT generate a UUID. `syntaur track-session` rejects missing session IDs.
|
|
40
|
-
|
|
41
|
-
### Step 3: Run the CLI command
|
|
42
|
-
|
|
43
|
-
Run the track-session CLI via Bash (use `dangerouslyDisableSandbox: true` since it writes to `~/.syntaur/`):
|
|
23
|
+
Run one Bash call (use `dangerouslyDisableSandbox: true` since it writes to `~/.syntaur/`), passing through whatever optional flags the user gave:
|
|
44
24
|
|
|
45
25
|
```bash
|
|
46
|
-
syntaur track-session \
|
|
47
|
-
--agent claude \
|
|
48
|
-
--session-id "$SESSION_ID" \
|
|
49
|
-
--transcript-path "$TRANSCRIPT_PATH" \
|
|
50
|
-
--path "$(pwd)" \
|
|
51
|
-
--pid "$(ps -o ppid= -p $$ | tr -d ' ')" \
|
|
26
|
+
syntaur track-session --agent claude \
|
|
52
27
|
[--description "<text>"] \
|
|
53
|
-
[--project <slug>]
|
|
54
|
-
[--assignment <slug>]
|
|
28
|
+
[--project <slug>] [--assignment <slug>]
|
|
55
29
|
```
|
|
56
30
|
|
|
57
|
-
|
|
31
|
+
The CLI resolves the session id, transcript-derived path, owning pid, and HEAD sha itself, and prints one of:
|
|
58
32
|
|
|
59
|
-
The CLI prints one of:
|
|
60
33
|
- `Registered standalone agent session <sessionId>.`
|
|
61
34
|
- `Registered agent session <sessionId> for <assignment> in <project>.`
|
|
62
35
|
|
|
63
|
-
Registration is idempotent — re-running
|
|
64
|
-
|
|
65
|
-
### Step 4: Merge context.json
|
|
66
|
-
|
|
67
|
-
Ensure `.syntaur/context.json` has the session fields (so SessionEnd and future `track-session` runs find them). Merge, don't overwrite:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
mkdir -p .syntaur
|
|
71
|
-
if [ -f .syntaur/context.json ]; then
|
|
72
|
-
jq --arg sid "$SESSION_ID" --arg tp "$TRANSCRIPT_PATH" \
|
|
73
|
-
'. + {sessionId: $sid} + (if ($tp | length) > 0 then {transcriptPath: $tp} else {} end)' \
|
|
74
|
-
.syntaur/context.json > .syntaur/context.json.tmp \
|
|
75
|
-
&& mv .syntaur/context.json.tmp .syntaur/context.json
|
|
76
|
-
else
|
|
77
|
-
jq -n --arg sid "$SESSION_ID" --arg tp "$TRANSCRIPT_PATH" \
|
|
78
|
-
'{sessionId: $sid} + (if ($tp | length) > 0 then {transcriptPath: $tp} else {} end)' \
|
|
79
|
-
> .syntaur/context.json
|
|
80
|
-
fi
|
|
81
|
-
```
|
|
36
|
+
Registration is idempotent — re-running with the same session id safely upserts the description/link onto the existing row.
|
|
82
37
|
|
|
83
|
-
|
|
38
|
+
If it errors with "Could not resolve a session id", restart the Claude session so the SessionStart hook can register it (or pass `--session-id <id>` with a real agent-generated id — never synthesize one).
|
|
84
39
|
|
|
85
|
-
|
|
86
|
-
- The session was registered (include the short session id).
|
|
87
|
-
- It will be auto-stopped when this conversation ends via the SessionEnd hook.
|
|
88
|
-
- If linked to a project, mention which project/assignment.
|
|
40
|
+
Confirm to the user: the row was updated (include the short session id), it auto-stops at SessionEnd, and which project/assignment it is linked to, if any.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aq as o,ar as n}from"./mermaid.core-C337VWfr.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-WL4C6EOR-CtXgQLdS.js";import{_ as i}from"./mermaid.core-C337VWfr.js";import"./chunk-FMBD7UC4-sgRWBbaF.js";import"./chunk-JSJVCQXG-DlYKMl_j.js";import"./chunk-55IACEB6-DYIRGzA1.js";import"./chunk-KX2RTZJC-D0YDLAOF.js";import"./index-DRng26Jg.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-WL4C6EOR-CtXgQLdS.js";import{_ as i}from"./mermaid.core-C337VWfr.js";import"./chunk-FMBD7UC4-sgRWBbaF.js";import"./chunk-JSJVCQXG-DlYKMl_j.js";import"./chunk-55IACEB6-DYIRGzA1.js";import"./chunk-KX2RTZJC-D0YDLAOF.js";import"./index-DRng26Jg.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./_baseUniq-_J7s4kD3.js";var e=4;function a(o){return r(o,e)}export{a as c};
|