@ngockhoale/ukit 2.7.6 → 2.7.8
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/CHANGELOG.md +105 -0
- package/package.json +1 -1
- package/scripts/install/sync-installed-mirror.mjs +250 -0
- package/scripts/perf/audit-perf.mjs +287 -36
- package/scripts/perf/diff-perf-findings.mjs +136 -0
- package/scripts/perf/perf-findings.json +260 -206
- package/scripts/perf/perf-measure.md +271 -0
- package/src/context/detectProjectContext.js +5 -0
- package/src/core/codeintel/invalidation.js +4 -0
- package/src/core/fileOps.js +40 -117
- package/src/core/hookChainDoctor.js +65 -2
- package/src/core/memory/store.js +22 -1
- package/src/core/taskBudgetValidator.js +9 -6
- package/src/core/unattendedDoctor.js +8 -1
- package/src/render/buildVariables.js +10 -0
- package/templates/.claude/agents/bug-debugger.md +1 -1
- package/templates/.claude/agents/feature-implementer.md +2 -2
- package/templates/.claude/commands/ukit/handoff-create.md +1 -1
- package/templates/.claude/commands/ukit/handoff-fullstack.md +1 -1
- package/templates/.claude/commands/ukit/handoff-implement.md +1 -1
- package/templates/.claude/commands/ukit/handoff-review.md +1 -1
- package/templates/.claude/hooks/auto-prune-bash.sh +19 -0
- package/templates/.claude/hooks/context-hardcap-gate.sh +4 -1
- package/templates/.claude/hooks/handoff-model-guard.sh +22 -11
- package/templates/.claude/hooks/reinject-context.sh +22 -0
- package/templates/.claude/hooks/reset-compact-pressure.sh +29 -0
- package/templates/.claude/hooks/session-episode.sh +20 -0
- package/templates/.claude/hooks/skill-router.sh +15 -8
- package/templates/.claude/hooks/verification-guard.sh +3 -0
- package/templates/.claude/ukit/index/route-task.mjs +237 -32
- package/templates/.claude/ukit/index/task-budget-validator.mjs +6 -2
- package/templates/.claude/ukit/runtime/async-lock.mjs +144 -10
- package/templates/.claude/ukit/runtime/compact-threshold.mjs +5 -2
- package/templates/.claude/ukit/runtime/execution-ledger.mjs +217 -17
- package/templates/.claude/ukit/runtime/hook-chain-runner.mjs +156 -24
- package/templates/.claude/ukit/runtime/hook-payload-store.mjs +57 -0
- package/templates/.claude/ukit/runtime/hook-telemetry.mjs +84 -12
- package/templates/.claude/ukit/runtime/hook-telemetry.sh +50 -0
- package/templates/.claude/ukit/runtime/stop-coordinator.mjs +35 -20
- package/templates/.claude/ukit/runtime/token-utils.mjs +37 -126
- package/templates/.codex/settings.json +1 -5
- package/templates/.omp/agents/bug-debugger.md +1 -1
- package/templates/.omp/agents/feature-implementer.md +2 -2
- package/templates/.omp/hooks/pre/ukit-bridge.js +157 -26
- package/templates/docs/AI_HANDOFF/INDEX.md +1 -1
- package/templates/docs/AI_HANDOFF/RULES.md +6 -6
- package/templates/ukit/storage/config.json +2 -2
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-09-
|
|
2
|
+
"generatedAt": "2026-09-20T23:07:33.744Z",
|
|
3
3
|
"schema": "ukit-perf-findings/1",
|
|
4
|
+
"telemetryRows": 62854,
|
|
5
|
+
"telemetryFiles": 120,
|
|
4
6
|
"sources": {
|
|
5
7
|
"telemetry": {
|
|
6
8
|
"dir": "/Volumes/KHOA_EXTENAL/WORKING_PROJECT/WORKING/UKit/.ukit/storage/cache/hook-latency",
|
|
7
|
-
"rows":
|
|
8
|
-
"files":
|
|
9
|
+
"rows": 62854,
|
|
10
|
+
"files": 120
|
|
9
11
|
},
|
|
10
|
-
"settings": "/Volumes/KHOA_EXTENAL/WORKING_PROJECT/WORKING/UKit
|
|
11
|
-
"hooksDir": "/Volumes/KHOA_EXTENAL/WORKING_PROJECT/WORKING/UKit
|
|
12
|
-
"benchmarkIterations":
|
|
12
|
+
"settings": "/Volumes/KHOA_EXTENAL/WORKING_PROJECT/WORKING/UKit/templates/.claude/settings.json",
|
|
13
|
+
"hooksDir": "/Volumes/KHOA_EXTENAL/WORKING_PROJECT/WORKING/UKit/templates/.claude/hooks",
|
|
14
|
+
"benchmarkIterations": 2,
|
|
13
15
|
"gitLogWindowDays": 14
|
|
14
16
|
},
|
|
15
17
|
"findings": [
|
|
@@ -17,38 +19,38 @@
|
|
|
17
19
|
"id": "chain-pretooluse-read-grep-glob",
|
|
18
20
|
"area": "hook chain — PreToolUse Read|Grep|Glob — 1 hook",
|
|
19
21
|
"evidence": "telemetry",
|
|
20
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
21
|
-
"p50ms":
|
|
22
|
-
"p95ms":
|
|
23
|
-
"totalMs":
|
|
24
|
-
"invocations":
|
|
25
|
-
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.
|
|
22
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=2340, p50 37ms, 2 hook rows/call; paths: 404 direct / 1936 chain-runner). Hooks: sensitive-data-guard.mjs:8 (18s)",
|
|
23
|
+
"p50ms": 37,
|
|
24
|
+
"p95ms": 72,
|
|
25
|
+
"totalMs": 78128,
|
|
26
|
+
"invocations": 2340,
|
|
27
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 is under the 50ms hotspot bar; consolidation is still the mechanism that removes the spawns.",
|
|
26
28
|
"fixTask": "TASK-234",
|
|
27
29
|
"status": "confirmed"
|
|
28
30
|
},
|
|
29
31
|
{
|
|
30
32
|
"id": "chain-pretooluse-edit-write",
|
|
31
|
-
"area": "hook chain — PreToolUse Edit|Write —
|
|
33
|
+
"area": "hook chain — PreToolUse Edit|Write — 1 hook",
|
|
32
34
|
"evidence": "telemetry",
|
|
33
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
34
|
-
"p50ms":
|
|
35
|
-
"p95ms":
|
|
36
|
-
"totalMs":
|
|
37
|
-
"invocations":
|
|
38
|
-
"rootCause": "
|
|
35
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=728, p50 331ms, 6 hook rows/call; paths: 402 direct / 326 chain-runner). Hooks: context-hardcap-gate.sh:8 (73s)",
|
|
36
|
+
"p50ms": 331,
|
|
37
|
+
"p95ms": 429,
|
|
38
|
+
"totalMs": 249733,
|
|
39
|
+
"invocations": 728,
|
|
40
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
39
41
|
"fixTask": "TASK-234",
|
|
40
42
|
"status": "confirmed"
|
|
41
43
|
},
|
|
42
44
|
{
|
|
43
45
|
"id": "chain-pretooluse-bash",
|
|
44
|
-
"area": "hook chain — PreToolUse Bash —
|
|
46
|
+
"area": "hook chain — PreToolUse Bash — 1 hook",
|
|
45
47
|
"evidence": "telemetry",
|
|
46
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
47
|
-
"p50ms":
|
|
48
|
-
"p95ms":
|
|
49
|
-
"totalMs":
|
|
50
|
-
"invocations":
|
|
51
|
-
"rootCause": "
|
|
48
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=4853, p50 307ms, 6 hook rows/call; paths: 2519 direct / 2334 chain-runner). Hooks: verification-guard.sh:8 (65s)",
|
|
49
|
+
"p50ms": 307,
|
|
50
|
+
"p95ms": 474,
|
|
51
|
+
"totalMs": 1559455,
|
|
52
|
+
"invocations": 4853,
|
|
53
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
52
54
|
"fixTask": "TASK-234",
|
|
53
55
|
"status": "confirmed"
|
|
54
56
|
},
|
|
@@ -56,51 +58,51 @@
|
|
|
56
58
|
"id": "chain-posttooluse-read-grep-glob",
|
|
57
59
|
"area": "hook chain — PostToolUse Read|Grep|Glob — 1 hook",
|
|
58
60
|
"evidence": "telemetry",
|
|
59
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
60
|
-
"p50ms":
|
|
61
|
-
"p95ms":
|
|
62
|
-
"totalMs":
|
|
63
|
-
"invocations":
|
|
64
|
-
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.
|
|
61
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=2329, p50 37ms, 2 hook rows/call; paths: 393 direct / 1936 chain-runner). Hooks: record-execution.mjs:8 (18s)",
|
|
62
|
+
"p50ms": 37,
|
|
63
|
+
"p95ms": 118,
|
|
64
|
+
"totalMs": 100380,
|
|
65
|
+
"invocations": 2329,
|
|
66
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 is under the 50ms hotspot bar; consolidation is still the mechanism that removes the spawns.",
|
|
65
67
|
"fixTask": "TASK-234",
|
|
66
68
|
"status": "confirmed"
|
|
67
69
|
},
|
|
68
70
|
{
|
|
69
71
|
"id": "chain-posttooluse-edit-write",
|
|
70
|
-
"area": "hook chain — PostToolUse Edit|Write —
|
|
72
|
+
"area": "hook chain — PostToolUse Edit|Write — 1 hook",
|
|
71
73
|
"evidence": "telemetry",
|
|
72
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
73
|
-
"p50ms":
|
|
74
|
-
"p95ms":
|
|
75
|
-
"totalMs":
|
|
76
|
-
"invocations":
|
|
77
|
-
"rootCause": "
|
|
74
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=713, p50 130ms, 3 hook rows/call; paths: 397 direct / 316 chain-runner). Hooks: task-watchdog.sh:8 (34s)",
|
|
75
|
+
"p50ms": 130,
|
|
76
|
+
"p95ms": 222,
|
|
77
|
+
"totalMs": 102401,
|
|
78
|
+
"invocations": 713,
|
|
79
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
78
80
|
"fixTask": "TASK-234",
|
|
79
81
|
"status": "confirmed"
|
|
80
82
|
},
|
|
81
83
|
{
|
|
82
84
|
"id": "chain-posttooluse-bash",
|
|
83
|
-
"area": "hook chain — PostToolUse Bash —
|
|
85
|
+
"area": "hook chain — PostToolUse Bash — 1 hook",
|
|
84
86
|
"evidence": "telemetry",
|
|
85
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
86
|
-
"p50ms":
|
|
87
|
-
"p95ms":
|
|
88
|
-
"totalMs":
|
|
89
|
-
"invocations":
|
|
90
|
-
"rootCause": "
|
|
87
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=4701, p50 87ms, 2 hook rows/call; paths: 2406 direct / 2295 chain-runner). Hooks: record-execution.mjs:8 (30s)",
|
|
88
|
+
"p50ms": 87,
|
|
89
|
+
"p95ms": 150,
|
|
90
|
+
"totalMs": 449914,
|
|
91
|
+
"invocations": 4701,
|
|
92
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
91
93
|
"fixTask": "TASK-234",
|
|
92
94
|
"status": "confirmed"
|
|
93
95
|
},
|
|
94
96
|
{
|
|
95
97
|
"id": "chain-userpromptsubmit-all",
|
|
96
|
-
"area": "hook chain — UserPromptSubmit (all tools) —
|
|
98
|
+
"area": "hook chain — UserPromptSubmit (all tools) — 1 hook",
|
|
97
99
|
"evidence": "telemetry",
|
|
98
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
99
|
-
"p50ms":
|
|
100
|
-
"p95ms":
|
|
101
|
-
"totalMs":
|
|
102
|
-
"invocations":
|
|
103
|
-
"rootCause": "
|
|
100
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=349, p50 291ms, 4 hook rows/call; paths: 200 direct / 149 chain-runner). Hooks: context-window-guard.sh:10 (60s)",
|
|
101
|
+
"p50ms": 291,
|
|
102
|
+
"p95ms": 582,
|
|
103
|
+
"totalMs": 101608,
|
|
104
|
+
"invocations": 349,
|
|
105
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
104
106
|
"fixTask": "TASK-234",
|
|
105
107
|
"status": "confirmed"
|
|
106
108
|
},
|
|
@@ -108,12 +110,12 @@
|
|
|
108
110
|
"id": "chain-stop-all",
|
|
109
111
|
"area": "hook chain — Stop (all tools) — 1 hook",
|
|
110
112
|
"evidence": "telemetry",
|
|
111
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
113
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=116, p50 81ms, 1 hook rows/call; paths: 113 direct / 3 chain-runner). Hooks: completion-gate.sh:8 (18s)",
|
|
112
114
|
"p50ms": 81,
|
|
113
|
-
"p95ms":
|
|
114
|
-
"totalMs":
|
|
115
|
-
"invocations":
|
|
116
|
-
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.
|
|
115
|
+
"p95ms": 111,
|
|
116
|
+
"totalMs": 9890,
|
|
117
|
+
"invocations": 116,
|
|
118
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
117
119
|
"fixTask": "TASK-234",
|
|
118
120
|
"status": "confirmed"
|
|
119
121
|
},
|
|
@@ -121,51 +123,51 @@
|
|
|
121
123
|
"id": "chain-precompact-all",
|
|
122
124
|
"area": "hook chain — PreCompact (all tools) — 1 hook",
|
|
123
125
|
"evidence": "telemetry",
|
|
124
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
126
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=6, p50 49ms, 1 hook rows/call; paths: 0 direct / 6 chain-runner). Hooks: reinject-context.sh:8 (18s)",
|
|
125
127
|
"p50ms": 49,
|
|
126
|
-
"p95ms":
|
|
127
|
-
"totalMs":
|
|
128
|
-
"invocations":
|
|
129
|
-
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.
|
|
128
|
+
"p95ms": 53,
|
|
129
|
+
"totalMs": 260,
|
|
130
|
+
"invocations": 6,
|
|
131
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 is under the 50ms hotspot bar; consolidation is still the mechanism that removes the spawns.",
|
|
130
132
|
"fixTask": "TASK-234",
|
|
131
133
|
"status": "confirmed"
|
|
132
134
|
},
|
|
133
135
|
{
|
|
134
136
|
"id": "chain-sessionstart-all",
|
|
135
|
-
"area": "hook chain — SessionStart (all tools) —
|
|
137
|
+
"area": "hook chain — SessionStart (all tools) — 1 hook",
|
|
136
138
|
"evidence": "telemetry",
|
|
137
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
138
|
-
"p50ms":
|
|
139
|
-
"p95ms":
|
|
140
|
-
"totalMs":
|
|
141
|
-
"invocations":
|
|
142
|
-
"rootCause": "
|
|
139
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=113, p50 119ms, 2 hook rows/call; paths: 38 direct / 75 chain-runner). Hooks: handoff-resume.sh:8 (50s)",
|
|
140
|
+
"p50ms": 119,
|
|
141
|
+
"p95ms": 289,
|
|
142
|
+
"totalMs": 16463,
|
|
143
|
+
"invocations": 113,
|
|
144
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
143
145
|
"fixTask": "TASK-234",
|
|
144
146
|
"status": "confirmed"
|
|
145
147
|
},
|
|
146
148
|
{
|
|
147
149
|
"id": "chain-sessionend-all",
|
|
148
150
|
"area": "hook chain — SessionEnd (all tools) — 1 hook",
|
|
149
|
-
"evidence": "
|
|
150
|
-
"evidenceDetail": "
|
|
151
|
-
"p50ms":
|
|
152
|
-
"p95ms":
|
|
153
|
-
"totalMs":
|
|
154
|
-
"invocations":
|
|
155
|
-
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.
|
|
156
|
-
"fixTask":
|
|
157
|
-
"status": "
|
|
151
|
+
"evidence": "telemetry",
|
|
152
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured per-call hook cost for the group's matching tools (n=1, p50 2020ms, 1 hook rows/call; paths: 0 direct / 1 chain-runner). Hooks: session-episode.sh:8 (18s)",
|
|
153
|
+
"p50ms": 2020,
|
|
154
|
+
"p95ms": 2020,
|
|
155
|
+
"totalMs": 2020,
|
|
156
|
+
"invocations": 1,
|
|
157
|
+
"rootCause": "3 process spawns per call (1 settings rows × 3: wrapper bash + node runtime + advisory telemetry node child), against a measured floor of bash 3.1ms + node 16.1ms + telemetry finish 19.5ms. Measured p50 exceeds the 50ms hotspot bar, so the spawn multiplier is the dominant term.",
|
|
158
|
+
"fixTask": "TASK-234",
|
|
159
|
+
"status": "confirmed"
|
|
158
160
|
},
|
|
159
161
|
{
|
|
160
162
|
"id": "hook-hook-chain-runner",
|
|
161
163
|
"area": "single hook — hook-chain-runner",
|
|
162
164
|
"evidence": "telemetry",
|
|
163
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
164
|
-
"p50ms":
|
|
165
|
-
"p95ms":
|
|
166
|
-
"totalMs":
|
|
167
|
-
"invocations":
|
|
168
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.
|
|
165
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; standalone re-run p50 not benchmarked (script not resolvable from this root)",
|
|
166
|
+
"p50ms": 80,
|
|
167
|
+
"p95ms": 375,
|
|
168
|
+
"totalMs": 1269815,
|
|
169
|
+
"invocations": 9453,
|
|
170
|
+
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.1ms + node 16.1ms + telemetry finish 19.5ms), plus this script's own work",
|
|
169
171
|
"fixTask": "TASK-234",
|
|
170
172
|
"status": "confirmed"
|
|
171
173
|
},
|
|
@@ -173,12 +175,12 @@
|
|
|
173
175
|
"id": "hook-skill-router-sh",
|
|
174
176
|
"area": "single hook — skill-router.sh",
|
|
175
177
|
"evidence": "telemetry",
|
|
176
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
177
|
-
"p50ms":
|
|
178
|
-
"p95ms":
|
|
179
|
-
"totalMs":
|
|
180
|
-
"invocations":
|
|
181
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.
|
|
178
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; standalone re-run p50 not benchmarked (script not resolvable from this root)",
|
|
179
|
+
"p50ms": 52,
|
|
180
|
+
"p95ms": 134,
|
|
181
|
+
"totalMs": 68680,
|
|
182
|
+
"invocations": 1089,
|
|
183
|
+
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.1ms + node 16.1ms + telemetry finish 19.5ms), plus this script's own work",
|
|
182
184
|
"fixTask": "TASK-234",
|
|
183
185
|
"status": "confirmed"
|
|
184
186
|
},
|
|
@@ -186,38 +188,12 @@
|
|
|
186
188
|
"id": "hook-vision-router-sh",
|
|
187
189
|
"area": "single hook — vision-router.sh",
|
|
188
190
|
"evidence": "telemetry",
|
|
189
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
190
|
-
"p50ms":
|
|
191
|
-
"p95ms":
|
|
192
|
-
"totalMs":
|
|
193
|
-
"invocations":
|
|
194
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.
|
|
195
|
-
"fixTask": "TASK-234",
|
|
196
|
-
"status": "confirmed"
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
"id": "hook-context-window-guard-sh",
|
|
200
|
-
"area": "single hook — context-window-guard.sh",
|
|
201
|
-
"evidence": "telemetry",
|
|
202
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency — 34629 rows across 55 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T07:42:45.514Z; standalone re-run p50 54.1ms",
|
|
203
|
-
"p50ms": 55,
|
|
204
|
-
"p95ms": 90,
|
|
205
|
-
"totalMs": 12101,
|
|
206
|
-
"invocations": 215,
|
|
207
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.8ms + node 16.9ms + telemetry finish 19.5ms), plus this script's own work",
|
|
208
|
-
"fixTask": "TASK-234",
|
|
209
|
-
"status": "confirmed"
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
"id": "hook-auto-allow-bash-sh",
|
|
213
|
-
"area": "single hook — auto-allow-bash.sh",
|
|
214
|
-
"evidence": "telemetry",
|
|
215
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency — 34629 rows across 55 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T07:42:45.514Z; standalone re-run p50 39.7ms",
|
|
216
|
-
"p50ms": 64,
|
|
217
|
-
"p95ms": 96,
|
|
218
|
-
"totalMs": 196059,
|
|
219
|
-
"invocations": 2994,
|
|
220
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.8ms + node 16.9ms + telemetry finish 19.5ms), plus this script's own work",
|
|
191
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; standalone re-run p50 not benchmarked (script not resolvable from this root)",
|
|
192
|
+
"p50ms": 73,
|
|
193
|
+
"p95ms": 220,
|
|
194
|
+
"totalMs": 29834,
|
|
195
|
+
"invocations": 325,
|
|
196
|
+
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.1ms + node 16.1ms + telemetry finish 19.5ms), plus this script's own work",
|
|
221
197
|
"fixTask": "TASK-234",
|
|
222
198
|
"status": "confirmed"
|
|
223
199
|
},
|
|
@@ -225,12 +201,12 @@
|
|
|
225
201
|
"id": "hook-block-dangerous-sh",
|
|
226
202
|
"area": "single hook — block-dangerous.sh",
|
|
227
203
|
"evidence": "telemetry",
|
|
228
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
229
|
-
"p50ms":
|
|
230
|
-
"p95ms":
|
|
231
|
-
"totalMs":
|
|
232
|
-
"invocations":
|
|
233
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.
|
|
204
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; standalone re-run p50 not benchmarked (script not resolvable from this root)",
|
|
205
|
+
"p50ms": 83,
|
|
206
|
+
"p95ms": 237,
|
|
207
|
+
"totalMs": 461434,
|
|
208
|
+
"invocations": 5107,
|
|
209
|
+
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.1ms + node 16.1ms + telemetry finish 19.5ms), plus this script's own work",
|
|
234
210
|
"fixTask": "TASK-234",
|
|
235
211
|
"status": "confirmed"
|
|
236
212
|
},
|
|
@@ -238,38 +214,12 @@
|
|
|
238
214
|
"id": "hook-context-hardcap-gate-sh",
|
|
239
215
|
"area": "single hook — context-hardcap-gate.sh",
|
|
240
216
|
"evidence": "telemetry",
|
|
241
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
242
|
-
"p50ms": 67,
|
|
243
|
-
"p95ms": 93,
|
|
244
|
-
"totalMs": 241749,
|
|
245
|
-
"invocations": 3571,
|
|
246
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.8ms + node 16.9ms + telemetry finish 19.5ms), plus this script's own work",
|
|
247
|
-
"fixTask": "TASK-234",
|
|
248
|
-
"status": "confirmed"
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
"id": "hook-stale-spec-guard-sh",
|
|
252
|
-
"area": "single hook — stale-spec-guard.sh",
|
|
253
|
-
"evidence": "telemetry",
|
|
254
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency — 34629 rows across 55 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T07:42:45.514Z; standalone re-run p50 36.0ms",
|
|
255
|
-
"p50ms": 53,
|
|
256
|
-
"p95ms": 74,
|
|
257
|
-
"totalMs": 28844,
|
|
258
|
-
"invocations": 544,
|
|
259
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.8ms + node 16.9ms + telemetry finish 19.5ms), plus this script's own work",
|
|
260
|
-
"fixTask": "TASK-234",
|
|
261
|
-
"status": "confirmed"
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
"id": "hook-pre-edit-backup-sh",
|
|
265
|
-
"area": "single hook — pre-edit-backup.sh",
|
|
266
|
-
"evidence": "telemetry",
|
|
267
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency — 34629 rows across 55 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T07:42:45.514Z; standalone re-run p50 36.0ms",
|
|
217
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; standalone re-run p50 not benchmarked (script not resolvable from this root)",
|
|
268
218
|
"p50ms": 55,
|
|
269
|
-
"p95ms":
|
|
270
|
-
"totalMs":
|
|
271
|
-
"invocations":
|
|
272
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.
|
|
219
|
+
"p95ms": 88,
|
|
220
|
+
"totalMs": 334184,
|
|
221
|
+
"invocations": 5650,
|
|
222
|
+
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.1ms + node 16.1ms + telemetry finish 19.5ms), plus this script's own work",
|
|
273
223
|
"fixTask": "TASK-234",
|
|
274
224
|
"status": "confirmed"
|
|
275
225
|
},
|
|
@@ -277,12 +227,12 @@
|
|
|
277
227
|
"id": "hook-completion-gate-sh",
|
|
278
228
|
"area": "single hook — completion-gate.sh",
|
|
279
229
|
"evidence": "telemetry",
|
|
280
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
281
|
-
"p50ms":
|
|
230
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; standalone re-run p50 not benchmarked (script not resolvable from this root)",
|
|
231
|
+
"p50ms": 80,
|
|
282
232
|
"p95ms": 108,
|
|
283
|
-
"totalMs":
|
|
284
|
-
"invocations":
|
|
285
|
-
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.
|
|
233
|
+
"totalMs": 9881,
|
|
234
|
+
"invocations": 119,
|
|
235
|
+
"rootCause": "per-invocation cost is dominated by the 3-spawn hook row (wrapper bash 3.1ms + node 16.1ms + telemetry finish 19.5ms), plus this script's own work",
|
|
286
236
|
"fixTask": "TASK-234",
|
|
287
237
|
"status": "confirmed"
|
|
288
238
|
},
|
|
@@ -290,24 +240,24 @@
|
|
|
290
240
|
"id": "hook-project-important-tail",
|
|
291
241
|
"area": "project-important.sh — PROJECT_IMPORTANT.md injection tail",
|
|
292
242
|
"evidence": "telemetry",
|
|
293
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
243
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; bimodal across 47 invocations: p50 38ms vs p95 61ms vs max 62ms (paths seen: PreToolUse, SessionStart) — a cheap path and an expensive path with no cache between them",
|
|
294
244
|
"p50ms": null,
|
|
295
|
-
"p95ms":
|
|
296
|
-
"totalMs":
|
|
297
|
-
"invocations":
|
|
245
|
+
"p95ms": 61,
|
|
246
|
+
"totalMs": 1962,
|
|
247
|
+
"invocations": 47,
|
|
298
248
|
"rootCause": "the renderer re-reads PROJECT_IMPORTANT.md and re-runs its full work (strict UTF-8 decode, control-character validation, sensitive-value scan, envelope render) on every invocation; there is no mtime/content-keyed cache, so repeat runs pay the whole cost instead of replaying the previous result",
|
|
299
249
|
"fixTask": "TASK-235",
|
|
300
250
|
"status": "confirmed"
|
|
301
251
|
},
|
|
302
252
|
{
|
|
303
253
|
"id": "record-execution-multiplicity",
|
|
304
|
-
"area": "record-execution.sh — PostToolUse receipt writer registered in
|
|
254
|
+
"area": "record-execution.sh — PostToolUse receipt writer registered in 0 matcher groups",
|
|
305
255
|
"evidence": "telemetry",
|
|
306
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
256
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; measured fire count per tool call = 4 (distribution {\"1\":4873,\"3\":1,\"4\":1} over 4875 calls). The \"once per matching matcher group\" repeat hypothesis is REFUTED: settings.json names the hook in 0 groups, but those matchers are mutually exclusive per tool, so it runs exactly once per call. Its real cost is breadth — highest-invocation hook measured (n=4880, p50 39ms, total 207226ms).",
|
|
307
257
|
"p50ms": 39,
|
|
308
|
-
"p95ms":
|
|
309
|
-
"totalMs":
|
|
310
|
-
"invocations":
|
|
258
|
+
"p95ms": 63,
|
|
259
|
+
"totalMs": 207226,
|
|
260
|
+
"invocations": 4880,
|
|
311
261
|
"rootCause": "not a duplication bug: the matchers (Read|Grep|Glob, Edit|Write, Bash) are mutually exclusive, so at most one group fires per tool. The cost is that one full 3-spawn hook row is paid on every tool call of every kind — breadth, not repeats.",
|
|
312
262
|
"fixTask": null,
|
|
313
263
|
"status": "not-a-bug"
|
|
@@ -316,24 +266,24 @@
|
|
|
316
266
|
"id": "index-router-cold-start",
|
|
317
267
|
"area": "index/router helpers invoked per prompt (skill-router → resolve-context / route-task / query-index)",
|
|
318
268
|
"evidence": "telemetry",
|
|
319
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
320
|
-
"p50ms":
|
|
321
|
-
"p95ms":
|
|
322
|
-
"totalMs":
|
|
323
|
-
"invocations":
|
|
269
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; UserPromptSubmit groups: n=349, p50 291ms, p95 582ms, 4 hook rows/group. Standalone cold starts: skill-router.sh 105.2ms, query-index.mjs 23.6ms, route-task.mjs 26.4ms, resolve-context.mjs 21.9ms",
|
|
270
|
+
"p50ms": 291,
|
|
271
|
+
"p95ms": 582,
|
|
272
|
+
"totalMs": 101608,
|
|
273
|
+
"invocations": 349,
|
|
324
274
|
"rootCause": "every router helper pays a fresh node cold start (no warm process is reused), and skill-router.sh additionally imports the index core in-process per invocation; the cost is process boot plus module load, not the routing decision itself",
|
|
325
275
|
"fixTask": "TASK-234",
|
|
326
276
|
"status": "confirmed"
|
|
327
277
|
},
|
|
328
278
|
{
|
|
329
279
|
"id": "c29-c32-hot-path-additions",
|
|
330
|
-
"area": "recent hot-path additions —
|
|
280
|
+
"area": "recent hot-path additions — 24 files across 18 commits",
|
|
331
281
|
"evidence": "git-log",
|
|
332
|
-
"evidenceDetail": "git log --since=14 days ago --diff-filter=A -- templates/.claude/hooks templates/.claude/ukit/runtime templates/.claude/ukit/index: templates/.claude/hooks/
|
|
282
|
+
"evidenceDetail": "git log --since=14 days ago --diff-filter=A -- templates/.claude/hooks templates/.claude/ukit/runtime templates/.claude/ukit/index: templates/.claude/hooks/block-dangerous.mjs, templates/.claude/hooks/record-execution.mjs, templates/.claude/hooks/sensitive-data-guard.mjs, templates/.claude/ukit/runtime/hook-field-salvage.mjs, templates/.claude/hooks/session-episode.sh, templates/.claude/hooks/project-important.sh, templates/.claude/hooks/project-important.sh, templates/.claude/ukit/runtime/project-important.mjs, templates/.claude/ukit/runtime/sensitive-value-scanner.mjs, templates/.claude/ukit/runtime/hook-chain-budget.mjs, templates/.claude/ukit/runtime/stop-coordinator.mjs, templates/.claude/ukit/runtime/hook-payload-store.mjs, +12 more",
|
|
333
283
|
"p50ms": null,
|
|
334
284
|
"p95ms": null,
|
|
335
285
|
"totalMs": null,
|
|
336
|
-
"invocations":
|
|
286
|
+
"invocations": 24,
|
|
337
287
|
"rootCause": "each added hook file becomes another settings.json row on the event it joins, i.e. another 3-spawn hook row per call (SPEC §1.3 consolidation is what removes them); each added runtime module is an extra cold-start import paid per invocation. The regression is additive spawn count, not one slow file.",
|
|
338
288
|
"fixTask": "TASK-234",
|
|
339
289
|
"status": "confirmed"
|
|
@@ -342,11 +292,11 @@
|
|
|
342
292
|
"id": "existing-chain-runner-baseline",
|
|
343
293
|
"area": "hook-chain-runner.mjs — already-consolidated omp path (TASK-234 reuse target)",
|
|
344
294
|
"evidence": "telemetry",
|
|
345
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
346
|
-
"p50ms":
|
|
347
|
-
"p95ms":
|
|
348
|
-
"totalMs":
|
|
349
|
-
"invocations":
|
|
295
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; a whole chain of 1 scripts runs in ONE node process at p50 80ms / p95 375ms (n=9453), while a Claude settings group of comparable size pays 3 spawns per script. Nested per-script rows: record-execution.mjs p50 5ms, sensitive-data-guard.mjs p50 4ms, handoff-model-guard.sh p50 39ms, context-hardcap-gate.sh p50 68ms, auto-allow-bash.sh p50 72ms, compress-output.sh p50 73ms",
|
|
296
|
+
"p50ms": 80,
|
|
297
|
+
"p95ms": 375,
|
|
298
|
+
"totalMs": 1269815,
|
|
299
|
+
"invocations": 9453,
|
|
350
300
|
"rootCause": "no defect — this is the measured proof that one-process-per-group execution is achievable with per-script telemetry intact, so TASK-234 should re-point settings.json at this runner rather than build a new one",
|
|
351
301
|
"fixTask": "TASK-234",
|
|
352
302
|
"status": "confirmed"
|
|
@@ -355,9 +305,9 @@
|
|
|
355
305
|
"id": "process-floor",
|
|
356
306
|
"area": "process spawn floor (bash + node + advisory telemetry child)",
|
|
357
307
|
"evidence": "micro-benchmark",
|
|
358
|
-
"evidenceDetail": "live spawnSync over
|
|
359
|
-
"p50ms":
|
|
360
|
-
"p95ms":
|
|
308
|
+
"evidenceDetail": "live spawnSync over 2 iterations: bash -c true p50 3.13ms, node -e 0 p50 16.11ms, node hook-telemetry.mjs --finish p50 19.50ms",
|
|
309
|
+
"p50ms": 38.73741700000001,
|
|
310
|
+
"p95ms": 38.73741700000001,
|
|
361
311
|
"totalMs": null,
|
|
362
312
|
"invocations": 0,
|
|
363
313
|
"rootCause": "each settings.json hook row is a bash wrapper that boots node, then arms a second node child for advisory telemetry; this floor is paid per row, so it multiplies by the row count of the event",
|
|
@@ -365,54 +315,158 @@
|
|
|
365
315
|
"status": "not-a-bug"
|
|
366
316
|
},
|
|
367
317
|
{
|
|
368
|
-
"id": "
|
|
369
|
-
"area": "
|
|
318
|
+
"id": "telemetry-append-overhead",
|
|
319
|
+
"area": "telemetry append overhead — appendTelemetryRow, in-process against a throwaway project root",
|
|
320
|
+
"evidence": "micro-benchmark",
|
|
321
|
+
"evidenceDetail": "appendTelemetryRow over 2 iterations against a temp project root (the audited telemetry dir is never written): p50 0.407ms, p95 0.407ms, max 0.407ms, total 0.464ms; writer templates/.claude/ukit/runtime/hook-telemetry.mjs",
|
|
322
|
+
"p50ms": 0.407125,
|
|
323
|
+
"p95ms": 0.407125,
|
|
324
|
+
"totalMs": 0.464083,
|
|
325
|
+
"invocations": 2,
|
|
326
|
+
"rootCause": "one synchronous append costs p50 0.407ms (under the 50ms hotspot bar): the observability layer's own I/O is bounded by a single append plus an amortized 1-in-16 sampled sweep, so it is not the hook chain's dominant term",
|
|
327
|
+
"fixTask": null,
|
|
328
|
+
"status": "not-a-bug"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"id": "stdin-stage-vs-exec-split",
|
|
332
|
+
"area": "stdin stage vs execution split (O3 — the wall-time tail attributed)",
|
|
333
|
+
"evidence": "unavailable",
|
|
334
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row carries `stdinStageMs` or `stageMs`, so the exec-vs-stage split is unmeasured on this tree. Old rows keep aggregating exactly as before — the fields are additive and optional, so their absence is reported rather than guessed at as 0ms.",
|
|
335
|
+
"p50ms": null,
|
|
336
|
+
"p95ms": null,
|
|
337
|
+
"totalMs": null,
|
|
338
|
+
"invocations": 0,
|
|
339
|
+
"rootCause": "the split needs rows written after the fields shipped; a dataset predating them yields no numbers at all (null, not zero), which is the null-safe posture the audit reports here",
|
|
340
|
+
"fixTask": null,
|
|
341
|
+
"status": "deferred"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"id": "hook-sensitive-data-guard-mjs-8-unmeasured",
|
|
345
|
+
"area": "single hook — sensitive-data-guard.mjs:8 (registered in settings.json, no telemetry rows)",
|
|
346
|
+
"evidence": "unavailable",
|
|
347
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
348
|
+
"p50ms": null,
|
|
349
|
+
"p95ms": null,
|
|
350
|
+
"totalMs": null,
|
|
351
|
+
"invocations": 0,
|
|
352
|
+
"rootCause": "no measurement exists for sensitive-data-guard.mjs:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
353
|
+
"fixTask": null,
|
|
354
|
+
"status": "deferred"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"id": "hook-context-hardcap-gate-sh-8-unmeasured",
|
|
358
|
+
"area": "single hook — context-hardcap-gate.sh:8 (registered in settings.json, no telemetry rows)",
|
|
359
|
+
"evidence": "unavailable",
|
|
360
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
361
|
+
"p50ms": null,
|
|
362
|
+
"p95ms": null,
|
|
363
|
+
"totalMs": null,
|
|
364
|
+
"invocations": 0,
|
|
365
|
+
"rootCause": "no measurement exists for context-hardcap-gate.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
366
|
+
"fixTask": null,
|
|
367
|
+
"status": "deferred"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"id": "hook-verification-guard-sh-8-unmeasured",
|
|
371
|
+
"area": "single hook — verification-guard.sh:8 (registered in settings.json, no telemetry rows)",
|
|
372
|
+
"evidence": "unavailable",
|
|
373
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
374
|
+
"p50ms": null,
|
|
375
|
+
"p95ms": null,
|
|
376
|
+
"totalMs": null,
|
|
377
|
+
"invocations": 0,
|
|
378
|
+
"rootCause": "no measurement exists for verification-guard.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
379
|
+
"fixTask": null,
|
|
380
|
+
"status": "deferred"
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"id": "hook-record-execution-mjs-8-unmeasured",
|
|
384
|
+
"area": "single hook — record-execution.mjs:8 (registered in settings.json, no telemetry rows)",
|
|
385
|
+
"evidence": "unavailable",
|
|
386
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
387
|
+
"p50ms": null,
|
|
388
|
+
"p95ms": null,
|
|
389
|
+
"totalMs": null,
|
|
390
|
+
"invocations": 0,
|
|
391
|
+
"rootCause": "no measurement exists for record-execution.mjs:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
392
|
+
"fixTask": null,
|
|
393
|
+
"status": "deferred"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"id": "hook-task-watchdog-sh-8-unmeasured",
|
|
397
|
+
"area": "single hook — task-watchdog.sh:8 (registered in settings.json, no telemetry rows)",
|
|
398
|
+
"evidence": "unavailable",
|
|
399
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
400
|
+
"p50ms": null,
|
|
401
|
+
"p95ms": null,
|
|
402
|
+
"totalMs": null,
|
|
403
|
+
"invocations": 0,
|
|
404
|
+
"rootCause": "no measurement exists for task-watchdog.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
405
|
+
"fixTask": null,
|
|
406
|
+
"status": "deferred"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"id": "hook-context-window-guard-sh-10-unmeasured",
|
|
410
|
+
"area": "single hook — context-window-guard.sh:10 (registered in settings.json, no telemetry rows)",
|
|
411
|
+
"evidence": "unavailable",
|
|
412
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
413
|
+
"p50ms": null,
|
|
414
|
+
"p95ms": null,
|
|
415
|
+
"totalMs": null,
|
|
416
|
+
"invocations": 0,
|
|
417
|
+
"rootCause": "no measurement exists for context-window-guard.sh:10 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
418
|
+
"fixTask": null,
|
|
419
|
+
"status": "deferred"
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"id": "hook-completion-gate-sh-8-unmeasured",
|
|
423
|
+
"area": "single hook — completion-gate.sh:8 (registered in settings.json, no telemetry rows)",
|
|
370
424
|
"evidence": "unavailable",
|
|
371
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
425
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
372
426
|
"p50ms": null,
|
|
373
427
|
"p95ms": null,
|
|
374
428
|
"totalMs": null,
|
|
375
429
|
"invocations": 0,
|
|
376
|
-
"rootCause": "no measurement exists for
|
|
430
|
+
"rootCause": "no measurement exists for completion-gate.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
377
431
|
"fixTask": null,
|
|
378
432
|
"status": "deferred"
|
|
379
433
|
},
|
|
380
434
|
{
|
|
381
|
-
"id": "hook-
|
|
382
|
-
"area": "single hook —
|
|
435
|
+
"id": "hook-reinject-context-sh-8-unmeasured",
|
|
436
|
+
"area": "single hook — reinject-context.sh:8 (registered in settings.json, no telemetry rows)",
|
|
383
437
|
"evidence": "unavailable",
|
|
384
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
438
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
385
439
|
"p50ms": null,
|
|
386
440
|
"p95ms": null,
|
|
387
441
|
"totalMs": null,
|
|
388
442
|
"invocations": 0,
|
|
389
|
-
"rootCause": "no measurement exists for
|
|
443
|
+
"rootCause": "no measurement exists for reinject-context.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
390
444
|
"fixTask": null,
|
|
391
445
|
"status": "deferred"
|
|
392
446
|
},
|
|
393
447
|
{
|
|
394
|
-
"id": "hook-
|
|
395
|
-
"area": "single hook —
|
|
448
|
+
"id": "hook-handoff-resume-sh-8-unmeasured",
|
|
449
|
+
"area": "single hook — handoff-resume.sh:8 (registered in settings.json, no telemetry rows)",
|
|
396
450
|
"evidence": "unavailable",
|
|
397
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
451
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
398
452
|
"p50ms": null,
|
|
399
453
|
"p95ms": null,
|
|
400
454
|
"totalMs": null,
|
|
401
455
|
"invocations": 0,
|
|
402
|
-
"rootCause": "no measurement exists for
|
|
456
|
+
"rootCause": "no measurement exists for handoff-resume.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
403
457
|
"fixTask": null,
|
|
404
458
|
"status": "deferred"
|
|
405
459
|
},
|
|
406
460
|
{
|
|
407
|
-
"id": "hook-session-episode-sh-unmeasured",
|
|
408
|
-
"area": "single hook — session-episode.sh (registered in settings.json, no telemetry rows)",
|
|
461
|
+
"id": "hook-session-episode-sh-8-unmeasured",
|
|
462
|
+
"area": "single hook — session-episode.sh:8 (registered in settings.json, no telemetry rows)",
|
|
409
463
|
"evidence": "unavailable",
|
|
410
|
-
"evidenceDetail": ".ukit/storage/cache/hook-latency —
|
|
464
|
+
"evidenceDetail": ".ukit/storage/cache/hook-latency — 62854 rows across 120 session files, span 2026-09-17T10:50:18.670Z → 2026-09-20T23:07:33.053Z; no row exists for this script, so no per-invocation number is reported. It still costs 3 spawns on its event and is therefore already counted inside that chain's total.",
|
|
411
465
|
"p50ms": null,
|
|
412
466
|
"p95ms": null,
|
|
413
467
|
"totalMs": null,
|
|
414
468
|
"invocations": 0,
|
|
415
|
-
"rootCause": "no measurement exists for session-episode.sh on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
469
|
+
"rootCause": "no measurement exists for session-episode.sh:8 on this tree — its cost stays unset (evidenced by absence) rather than estimated; the chain it belongs to carries the spawn floor",
|
|
416
470
|
"fixTask": null,
|
|
417
471
|
"status": "deferred"
|
|
418
472
|
}
|