@capillaryjs/capillary-devtools 1.0.0 → 1.1.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +41 -1
  3. package/dist/model/TraceRecorder.d.ts +3 -1
  4. package/dist/model/TraceRecorder.d.ts.map +1 -1
  5. package/dist/model/TraceRecorder.js +18 -8
  6. package/dist/model/TraceRecorder.js.map +1 -1
  7. package/dist/model/index.d.ts +2 -2
  8. package/dist/model/index.d.ts.map +1 -1
  9. package/dist/model/index.js +1 -1
  10. package/dist/model/index.js.map +1 -1
  11. package/dist/model/projection.d.ts +12 -0
  12. package/dist/model/projection.d.ts.map +1 -1
  13. package/dist/model/projection.js +41 -3
  14. package/dist/model/projection.js.map +1 -1
  15. package/dist/model/types.d.ts +15 -1
  16. package/dist/model/types.d.ts.map +1 -1
  17. package/dist/model/valueSnapshot.d.ts +8 -0
  18. package/dist/model/valueSnapshot.d.ts.map +1 -0
  19. package/dist/model/valueSnapshot.js +59 -0
  20. package/dist/model/valueSnapshot.js.map +1 -0
  21. package/dist/views/ActivityOverviewView.d.ts.map +1 -1
  22. package/dist/views/ActivityOverviewView.js +4 -1
  23. package/dist/views/ActivityOverviewView.js.map +1 -1
  24. package/dist/views/CausalTraceView.js +2 -2
  25. package/dist/views/CausalTraceView.js.map +1 -1
  26. package/dist/views/FlowGraphView.d.ts.map +1 -1
  27. package/dist/views/FlowGraphView.js +17 -7
  28. package/dist/views/FlowGraphView.js.map +1 -1
  29. package/dist/views/TraceDetailsView.d.ts.map +1 -1
  30. package/dist/views/TraceDetailsView.js +21 -10
  31. package/dist/views/TraceDetailsView.js.map +1 -1
  32. package/dist/views/TraceInspector.js +5 -5
  33. package/dist/views/TraceInspector.js.map +1 -1
  34. package/package.json +5 -5
  35. package/styles/structural.css +62 -8
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 1.1.0 - 2026-09-18
6
+
7
+ ### Changed
8
+
9
+ - Use flexbox for the inspector's single-axis stacks and root list, retaining
10
+ grid for the responsive multi-column workbench layout.
11
+
12
+ ### Added
13
+
14
+ - Add opt-in bounded, immutable nested value snapshots and expandable value/input/
15
+ error details, including cycle, accessor, failure, and truncation markers.
16
+ - Report render/update calls separately from event counts, show consumer triggers
17
+ and own renderer DOM writes, and identify UI consumers even with downstream children.
18
+
19
+ ### Fixed
20
+
21
+ - Replace absent lifecycle payloads with execution/effect summaries, show fetch
22
+ state on graph nodes, and place selected-node details beside the inspector graph.
23
+
5
24
  ## 1.0.0
6
25
 
7
26
  Initial release candidate; not yet published. Requires the companion Capillary
package/README.md CHANGED
@@ -47,6 +47,19 @@ arrows are known connections/input provenance, not proof of execution. Expand
47
47
  emitters. Details show inputs, values, state, errors, attempt outcomes, and
48
48
  capture limitations. A node with no observed event is labelled as such.
49
49
 
50
+ Components show render calls separately from lifecycle-event counts. A render
51
+ start and completion are two events, usually one render; synchronous reentrant
52
+ passes are counted too. UI consumers are identified even when they have downstream
53
+ children. `DataTable` has named header, column-header, and body consumers. A body
54
+ render can change rows without rendering unchanged headers.
55
+
56
+ Consumer details show the trigger (`dependency`, `parent`, or `explicit`) and
57
+ **own renderer DOM writes**. These counts exclude nested consumers and application
58
+ DOM code; they include renderer writes to detached nodes. They are not paint/layout
59
+ measurements. Zero own writes does not mean that child consumers did no work.
60
+ Older recordings without this metadata show unknown effects. The composed inspector
61
+ places node details beside the graph; standalone views remain independently composable.
62
+
50
63
  First/previous/next, the range control, and optional timed playback inspect the
51
64
  recording only. They never rewind or rerun application work. The default is the
52
65
  complete flow, with no autoplay; timed playback starts only on explicit Play.
@@ -72,11 +85,12 @@ available to the caller.
72
85
  | `maxBytes` | 2,000,000 estimated UTF-16 bytes of serialized records; not a heap-size guarantee |
73
86
  | `maxNodes`, `maxEdges` | 2,000 nodes and 8,000 connection lifetime records |
74
87
  | `maxPreviewLength` | 180 characters per preview |
88
+ | `maxSnapshotDepth`, `maxSnapshotEntries` | 3 levels (maximum 20), 100 properties across each captured value tree |
75
89
  | `capture` | `scalar`: metadata and primitive previews; object contents are not read |
76
90
  | `topology`, `ui`, `verbose` | `true`, `true`, `false`; verbose adds unchanged recomputations and input snapshots |
77
91
  | `clock` | `Date.now`; use a monotonic/injected clock for measured intervals |
78
92
 
79
- Payload modes are `none`, `scalar`, `preview`, `raw`, and `formatter`.
93
+ Payload modes are `none`, `scalar`, `preview`, `snapshot`, `raw`, and `formatter`.
80
94
  `preview` explicitly opts into shallow own-property inspection (at most eight
81
95
  retained fields, no getters or recursive copy). Proxy descriptor traps may run;
82
96
  failures are caught. `raw` deliberately retains mutable references, labels them
@@ -87,6 +101,32 @@ redaction. Formatter failures become a capture-error preview, not an application
87
101
  exception. Node labels/causes are metadata, not passed through payload redaction;
88
102
  do not put secrets there. Scalar strings can also be sensitive.
89
103
 
104
+ For trusted development data, opt into expandable capture-time object contents:
105
+
106
+ ```ts
107
+ const recorder = new TraceRecorder({
108
+ verbose: true,
109
+ capture: 'snapshot',
110
+ maxSnapshotDepth: 4,
111
+ maxSnapshotEntries: 100,
112
+ maxPreviewLength: 180,
113
+ }).start({fromStart: true})
114
+ ```
115
+
116
+ `snapshot` copies nested own data properties into immutable `ValueSnapshot` trees.
117
+ Details expand values, before-values, errors, and inputs without accessing the live
118
+ objects. Arrays show their captured length. Cycles, accessors, descriptor failures,
119
+ and depth/entry/string limits have explicit markers. Getters and `toJSON` are never
120
+ called; proxy own-key/descriptor traps may run and failures are contained. Property
121
+ enumeration itself follows JavaScript's `Reflect.ownKeys` behavior; the entry budget
122
+ bounds retained/traversed properties, not a proxy's own execution time. Captured trees
123
+ participate in `maxBytes` and JSON export. Original object references are not retained.
124
+ This mode can retain sensitive fields; application policy must choose whether to use it.
125
+
126
+ Scalar recordings cannot recover omitted contents later: configure capture and
127
+ record a new interaction. `preview` remains shallow; increasing its character
128
+ limit does not make it recursive. `raw` is not a historical object snapshot.
129
+
90
130
  Eviction is explicit; missing parents/metadata and unfinished attempts are never
91
131
  presented as a complete trace or proof that a request is still running. An
92
132
  unchanged node is only an observed unchanged recomputation in verbose mode.
@@ -1,7 +1,7 @@
1
1
  import { Emitter } from '@capillaryjs/capillary';
2
2
  import type { DiagnosticObserverOptions } from '@capillaryjs/capillary';
3
3
  import type { TraceRecording } from './types.js';
4
- export type TraceCaptureMode = 'none' | 'scalar' | 'preview' | 'raw' | 'formatter';
4
+ export type TraceCaptureMode = 'none' | 'scalar' | 'preview' | 'snapshot' | 'raw' | 'formatter';
5
5
  export interface TraceCaptureContext {
6
6
  readonly nodeId: string;
7
7
  readonly field: string;
@@ -12,6 +12,8 @@ export interface TraceRecorderOptions extends DiagnosticObserverOptions {
12
12
  maxNodes?: number;
13
13
  maxEdges?: number;
14
14
  maxPreviewLength?: number;
15
+ maxSnapshotDepth?: number;
16
+ maxSnapshotEntries?: number;
15
17
  capture?: TraceCaptureMode;
16
18
  formatter?: (value: unknown, context: TraceCaptureContext) => string;
17
19
  clock?: () => number;
@@ -1 +1 @@
1
- {"version":3,"file":"TraceRecorder.d.ts","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAiC,yBAAyB,EAAC,MAAM,wBAAwB,CAAA;AAErG,OAAO,KAAK,EAAmC,cAAc,EAAe,MAAM,YAAY,CAAA;AAE9F,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,CAAA;AAClF,MAAM,WAAW,mBAAmB;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC;AACtF,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,MAAM,CAAA;IACpE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACvB;AAED,uFAAuF;AACvF,qBAAa,aAAa;IACtB,QAAQ,CAAC,QAAQ,2BAA6D;IAC9E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6F;IACrH,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;gBAEhD,OAAO,GAAE,oBAAyB;IAiB9C,KAAK,CAAC,OAAO,GAAE;QAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,IAAI;IAY3E,IAAI,IAAI,IAAI;IASZ,KAAK,IAAI,IAAI;IAWb,QAAQ,IAAI,cAAc;IAY1B,4FAA4F;IAC5F,MAAM,IAAI,MAAM;IAEhB,OAAO,IAAI,IAAI;IAEf,OAAO,CAAC,MAAM;IAuCd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,OAAO;CASlB"}
1
+ {"version":3,"file":"TraceRecorder.d.ts","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAiC,yBAAyB,EAAC,MAAM,wBAAwB,CAAA;AAErG,OAAO,KAAK,EAAmC,cAAc,EAAe,MAAM,YAAY,CAAA;AAG9F,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,WAAW,CAAA;AAC/F,MAAM,WAAW,mBAAmB;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC;AACtF,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,MAAM,CAAA;IACpE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACvB;AAED,uFAAuF;AACvF,qBAAa,aAAa;IACtB,QAAQ,CAAC,QAAQ,2BAA6D;IAC9E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6F;IACrH,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;gBAEhD,OAAO,GAAE,oBAAyB;IAkB9C,KAAK,CAAC,OAAO,GAAE;QAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,IAAI;IAY3E,IAAI,IAAI,IAAI;IASZ,KAAK,IAAI,IAAI;IAWb,QAAQ,IAAI,cAAc;IAY1B,4FAA4F;IAC5F,MAAM,IAAI,MAAM;IAEhB,OAAO,IAAI,IAAI;IAEf,OAAO,CAAC,MAAM;IAwCd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IA0Bf,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,OAAO;CASlB"}
@@ -1,5 +1,6 @@
1
1
  import { Diagnostics, Emitter } from '@capillaryjs/capillary';
2
2
  import { devtoolsDiagnosticScope } from './scope.js';
3
+ import { captureValueSnapshot } from './valueSnapshot.js';
3
4
  /** A bounded, caller-owned sink. Payload references never enter default recordings. */
4
5
  export class TraceRecorder {
5
6
  revision = new Emitter(0, { diagnosticScope: devtoolsDiagnosticScope });
@@ -22,14 +23,16 @@ export class TraceRecorder {
22
23
  recordBytes = new WeakMap();
23
24
  constructor(options = {}) {
24
25
  this.options = { maxEvents: 2000, maxBytes: 2_000_000, maxNodes: 2000, maxEdges: 8000,
25
- maxPreviewLength: 180, capture: 'scalar', clock: Date.now,
26
+ maxPreviewLength: 180, maxSnapshotDepth: 3, maxSnapshotEntries: 100, capture: 'scalar', clock: Date.now,
26
27
  topology: true, verbose: false, ui: true, ...options };
27
- for (const key of ['maxEvents', 'maxBytes', 'maxNodes', 'maxEdges', 'maxPreviewLength']) {
28
+ for (const key of ['maxEvents', 'maxBytes', 'maxNodes', 'maxEdges', 'maxPreviewLength', 'maxSnapshotDepth', 'maxSnapshotEntries']) {
28
29
  if (!Number.isSafeInteger(this.options[key]) || this.options[key] < 1) {
29
30
  throw new TypeError(`${key} must be a positive safe integer`);
30
31
  }
31
32
  }
32
- if (!['none', 'scalar', 'preview', 'raw', 'formatter'].includes(this.options.capture)) {
33
+ if (this.options.maxSnapshotDepth > 20)
34
+ throw new TypeError('maxSnapshotDepth must not exceed 20');
35
+ if (!['none', 'scalar', 'preview', 'snapshot', 'raw', 'formatter'].includes(this.options.capture)) {
33
36
  throw new TypeError('Unknown trace capture mode');
34
37
  }
35
38
  if (this.options.capture === 'formatter' && typeof options.formatter !== 'function') {
@@ -90,7 +93,7 @@ export class TraceRecorder {
90
93
  evictedEvents: this.evictedEvents, droppedTopology: this.droppedTopology, bytes: this.bytes,
91
94
  maxBytes: this.options.maxBytes, maxEvents: this.options.maxEvents,
92
95
  rawReferences: this.options.capture === 'raw', topology: this.options.topology,
93
- ui: this.options.ui, verbose: this.options.verbose }) });
96
+ ui: this.options.ui, verbose: this.options.verbose, mode: this.options.capture }) });
94
97
  return this.cached;
95
98
  }
96
99
  /** Safe JSON export strips raw references before serialization (including toJSON hooks). */
@@ -135,6 +138,7 @@ export class TraceRecorder {
135
138
  error: details?.error == null ? null : preview(details.error, 'error'),
136
139
  fetchState: details?.fetchState ?? null, attemptId: details?.attemptId ?? null,
137
140
  delayMs: details?.delayMs ?? null,
141
+ ...(details?.consumer ? { consumer: Object.freeze({ ...details.consumer }) } : {}),
138
142
  inputs: Object.freeze((details?.inputs ?? []).map((input) => Object.freeze({ nodeId: input.nodeId,
139
143
  value: preview(input.value, 'input') }))) }));
140
144
  }
@@ -152,11 +156,16 @@ export class TraceRecorder {
152
156
  const type = value === null ? 'null' : typeof value;
153
157
  let text;
154
158
  let captureError;
159
+ const snapshot = mode === 'snapshot' ? captureValueSnapshot(value, {
160
+ depth: this.options.maxSnapshotDepth, entries: this.options.maxSnapshotEntries,
161
+ text: this.options.maxPreviewLength,
162
+ }) : undefined;
155
163
  try {
156
164
  text = mode === 'none' ? 'not captured'
157
- : mode === 'formatter' ? this.options.formatter(value, context)
158
- : mode === 'preview' ? boundedPreview(value, this.options.maxPreviewLength)
159
- : scalarText(value);
165
+ : snapshot ? snapshot.text
166
+ : mode === 'formatter' ? this.options.formatter(value, context)
167
+ : mode === 'preview' ? boundedPreview(value, this.options.maxPreviewLength)
168
+ : scalarText(value);
160
169
  if (typeof text !== 'string')
161
170
  throw new TypeError('Formatter must return a string');
162
171
  }
@@ -164,9 +173,10 @@ export class TraceRecorder {
164
173
  text = '[capture failed]';
165
174
  captureError = 'Preview capture failed';
166
175
  }
167
- const truncated = text.length > this.options.maxPreviewLength;
176
+ const truncated = text.length > this.options.maxPreviewLength || snapshot?.truncated === true;
168
177
  return Object.freeze({ text: text.slice(0, this.options.maxPreviewLength), type, truncated,
169
178
  historical: mode !== 'raw', ...(captureError ? { captureError } : {}),
179
+ ...(snapshot ? { snapshot } : {}),
170
180
  ...(mode === 'raw' ? { raw: value } : {}) });
171
181
  }
172
182
  enforceBounds() {
@@ -1 +1 @@
1
- {"version":3,"file":"TraceRecorder.js","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TraceRecorder.js","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export type { TraceSelectionState } from './TraceSelection.js';
5
5
  export { TracePlayback } from './TracePlayback.js';
6
6
  export type { TracePlaybackScheduler, TracePlaybackState } from './TracePlayback.js';
7
7
  export { devtoolsDiagnosticScope } from './scope.js';
8
- export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, captureLimitations } from './projection.js';
8
+ export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, nodeActivity, eventValueText, captureLimitations } from './projection.js';
9
9
  export type { CausalRow, FlowNode, FlowEdge, TraceFlow } from './projection.js';
10
- export type { TraceEvent, TraceNode, TraceEdge, TraceRecording, TraceFilter, TraceAttempt, ValuePreview } from './types.js';
10
+ export type { TraceEvent, TraceNode, TraceEdge, TraceRecording, TraceFilter, TraceAttempt, ValuePreview, ValueSnapshot } from './types.js';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA;AACtI,YAAY,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAC7E,YAAY,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA;AACpK,YAAY,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAC7E,YAAY,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA"}
@@ -2,5 +2,5 @@ export { TraceRecorder } from './TraceRecorder.js';
2
2
  export { TraceSelection } from './TraceSelection.js';
3
3
  export { TracePlayback } from './TracePlayback.js';
4
4
  export { devtoolsDiagnosticScope } from './scope.js';
5
- export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, captureLimitations } from './projection.js';
5
+ export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, nodeActivity, eventValueText, captureLimitations } from './projection.js';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA"}
@@ -9,6 +9,9 @@ export interface CausalRow {
9
9
  }
10
10
  /** Last observed state, not a later lifecycle marker's absent payload. */
11
11
  export declare function nodeValueEvent(events: readonly TraceEvent[]): TraceEvent | undefined;
12
+ /** Render/update starts are executions; their completion markers are not extra executions. */
13
+ export declare function nodeActivity(node: TraceNode, events: readonly TraceEvent[]): string;
14
+ export declare function eventValueText(event: TraceEvent): string;
12
15
  export declare function causalOutline(events: readonly TraceEvent[]): readonly CausalRow[];
13
16
  export declare function traceAttempts(events: readonly TraceEvent[]): readonly TraceAttempt[];
14
17
  export interface FlowNode {
@@ -29,6 +32,15 @@ export interface TraceFlow {
29
32
  readonly width: number;
30
33
  readonly height: number;
31
34
  }
35
+ /** Shared geometry for the compact graph cards and their connector anchors. */
36
+ export declare const flowLayout: Readonly<{
37
+ canvasInset: 16;
38
+ nodeWidth: 192;
39
+ nodeSlotHeight: 108;
40
+ columnGap: 24;
41
+ rowGap: 16;
42
+ edgeY: 42;
43
+ }>;
32
44
  /** Stable geometry depends on the complete selected trace, never the replay cursor. */
33
45
  export declare function projectFlow(recording: TraceRecording, events: readonly TraceEvent[], options?: {
34
46
  includeConnected?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAC,MAAM,YAAY,CAAA;AAEhG,wBAAgB,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,UAAU,EAAE,CAG3E;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,GAAE,WAAgB,GAAG,SAAS,UAAU,EAAE,CAuBtG;AAED,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAAC;AAEhH,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS,CAGpF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,SAAS,EAAE,CAkBjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,YAAY,EAAE,CAcpF;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AACD,MAAM,WAAW,QAAQ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAC;AAClG,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC;AAEtJ,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,GAAE;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAM,GAAG,SAAS,CAiE3I;AAiCD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAgB/E"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAC,MAAM,YAAY,CAAA;AAEhG,wBAAgB,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,UAAU,EAAE,CAG3E;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,GAAE,WAAgB,GAAG,SAAS,UAAU,EAAE,CAuBtG;AAED,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAAC;AAEhH,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS,CAGpF;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAWnF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQxD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,SAAS,EAAE,CAkBjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,YAAY,EAAE,CAcpF;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AACD,MAAM,WAAW,QAAQ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAC;AAClG,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC;AAEtJ,+EAA+E;AAC/E,eAAO,MAAM,UAAU;;;;;;;EAOrB,CAAA;AAEF,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,GAAE;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAM,GAAG,SAAS,CAmE3I;AAiCD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAgB/E"}
@@ -34,6 +34,33 @@ export function nodeValueEvent(events) {
34
34
  return events.findLast((event) => ['value', 'state', 'derived', 'recomputed-unchanged', 'subscribed'].includes(event.kind))
35
35
  ?? events.findLast((event) => event.value.type !== 'undefined') ?? events.at(-1);
36
36
  }
37
+ /** Render/update starts are executions; their completion markers are not extra executions. */
38
+ export function nodeActivity(node, events) {
39
+ if (node.kind !== 'component' && node.kind !== 'binding')
40
+ return `${events.length} events`;
41
+ const executions = new Map();
42
+ for (const event of events) {
43
+ if (event.kind !== 'consumer')
44
+ continue;
45
+ if (event.outcome === 'started')
46
+ executions.set(event.id, 1);
47
+ else
48
+ executions.set(event.parentId ?? event.id, event.consumer?.renderPasses ?? 1);
49
+ }
50
+ const starts = [...executions.values()].reduce((total, count) => total + count, 0);
51
+ const noun = node.kind === 'component' ? 'render' : 'update';
52
+ return `${starts} ${noun}${starts === 1 ? '' : 's'} · ${events.length} events`;
53
+ }
54
+ export function eventValueText(event) {
55
+ if (event.kind === 'consumer' && event.value.type === 'undefined' && !event.cause.startsWith('binding ')) {
56
+ const state = event.outcome === 'succeeded' ? 'Completed' : event.outcome === 'failed' ? 'Failed' : 'Started';
57
+ return event.consumer?.domWrites === undefined ? `${state} · DOM effects unknown`
58
+ : `${state} · ${event.consumer.domWrites} own DOM writes`;
59
+ }
60
+ if (event.kind === 'interaction' && event.value.type === 'undefined')
61
+ return event.cause;
62
+ return event.value.text;
63
+ }
37
64
  export function causalOutline(events) {
38
65
  const children = new Map();
39
66
  const ids = new Set(events.map((event) => event.id));
@@ -71,6 +98,15 @@ export function traceAttempts(events) {
71
98
  durationMs: start && end ? Math.max(0, end.timestamp - start.timestamp) : null };
72
99
  });
73
100
  }
101
+ /** Shared geometry for the compact graph cards and their connector anchors. */
102
+ export const flowLayout = Object.freeze({
103
+ canvasInset: 16,
104
+ nodeWidth: 192,
105
+ nodeSlotHeight: 108,
106
+ columnGap: 24,
107
+ rowGap: 16,
108
+ edgeY: 42,
109
+ });
74
110
  /** Stable geometry depends on the complete selected trace, never the replay cursor. */
75
111
  export function projectFlow(recording, events, options = {}) {
76
112
  const nodes = new Map(recording.nodes.map((node) => [node.id, node]));
@@ -141,11 +177,13 @@ export function projectFlow(recording, events, options = {}) {
141
177
  : node.kind === 'subscriber' ? 'subscription leaf'
142
178
  : node.kind === 'emitter' || node.kind === 'derived' ? 'emitter without known subscribers'
143
179
  : 'downstream leaf';
144
- return { node, events: occurrences, x: 20 + column * 260, y: 20 + row * 132, leaf };
180
+ return { node, events: occurrences,
181
+ x: flowLayout.canvasInset + column * (flowLayout.nodeWidth + flowLayout.columnGap),
182
+ y: flowLayout.canvasInset + row * (flowLayout.nodeSlotHeight + flowLayout.rowGap), leaf };
145
183
  });
146
184
  return { nodes: positioned, edges: links,
147
- width: Math.max(300, ...positioned.map((node) => node.x + 240)),
148
- height: Math.max(150, ...positioned.map((node) => node.y + 120)) };
185
+ width: Math.max(256, ...positioned.map((node) => node.x + flowLayout.nodeWidth + flowLayout.canvasInset)),
186
+ height: Math.max(140, ...positioned.map((node) => node.y + flowLayout.nodeSlotHeight + flowLayout.canvasInset)) };
149
187
  }
150
188
  function stronglyConnected(ids, edges) {
151
189
  const visited = new Set(), order = [];
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
- import type { DiagnosticEventKind, DiagnosticNode, DiagnosticOutcome } from '@capillaryjs/capillary';
1
+ import type { DiagnosticConsumerDetails, DiagnosticEventKind, DiagnosticNode, DiagnosticOutcome } from '@capillaryjs/capillary';
2
+ export interface ValueSnapshot {
3
+ readonly type: string;
4
+ readonly text: string;
5
+ readonly truncated?: boolean;
6
+ readonly entries?: readonly {
7
+ readonly key: string;
8
+ readonly value: ValueSnapshot;
9
+ }[];
10
+ }
2
11
  export interface ValuePreview {
3
12
  readonly text: string;
4
13
  readonly type: string;
5
14
  readonly truncated: boolean;
6
15
  readonly historical: boolean;
7
16
  readonly captureError?: string;
17
+ /** Bounded immutable capture-time contents, only in snapshot mode. */
18
+ readonly snapshot?: ValueSnapshot;
8
19
  /** Only present for explicitly selected raw capture; never exported to JSON. */
9
20
  readonly raw?: unknown;
10
21
  }
@@ -27,6 +38,7 @@ export interface TraceEvent {
27
38
  readonly nodeId: string;
28
39
  readonly value: ValuePreview;
29
40
  }[];
41
+ readonly consumer?: DiagnosticConsumerDetails;
30
42
  }
31
43
  export interface TraceNode extends DiagnosticNode {
32
44
  readonly firstSequence: number;
@@ -58,6 +70,8 @@ export interface TraceRecording {
58
70
  readonly topology: boolean;
59
71
  readonly ui: boolean;
60
72
  readonly verbose: boolean;
73
+ /** Absent in older recordings. */
74
+ readonly mode?: string;
61
75
  };
62
76
  }
63
77
  export interface TraceFilter {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ValueSnapshot } from './types.js';
2
+ /** Copies descriptors into a bounded immutable tree; never retains the source. */
3
+ export declare function captureValueSnapshot(value: unknown, limits: {
4
+ depth: number;
5
+ entries: number;
6
+ text: number;
7
+ }): ValueSnapshot;
8
+ //# sourceMappingURL=valueSnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueSnapshot.d.ts","sourceRoot":"","sources":["../../src/model/valueSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAA;AAE7C,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,aAAa,CA2C1H"}
@@ -0,0 +1,59 @@
1
+ /** Copies descriptors into a bounded immutable tree; never retains the source. */
2
+ export function captureValueSnapshot(value, limits) {
3
+ let remaining = limits.entries;
4
+ const ancestors = new WeakSet();
5
+ const node = (type, text, extra = {}) => Object.freeze({ type, text: text.slice(0, limits.text),
6
+ ...(text.length > limits.text ? { truncated: true } : {}), ...extra });
7
+ const visit = (current, depth) => {
8
+ if (current === null)
9
+ return node('null', 'null');
10
+ if (typeof current !== 'object') {
11
+ return node(typeof current, typeof current === 'string' ? JSON.stringify(current)
12
+ : typeof current === 'function' ? '[function]' : String(current));
13
+ }
14
+ if (ancestors.has(current))
15
+ return node('reference', '[Circular reference]');
16
+ try {
17
+ const array = Array.isArray(current);
18
+ const type = array ? 'array' : 'object';
19
+ const length = array ? Object.getOwnPropertyDescriptor(current, 'length')?.value : undefined;
20
+ const summary = array ? `Array(${typeof length === 'number' ? length : '?'})` : 'Object';
21
+ if (depth >= limits.depth)
22
+ return node(type, `${summary} [depth limit]`, { truncated: true });
23
+ if (remaining === 0)
24
+ return node(type, `${summary} [entry limit]`, { truncated: true });
25
+ ancestors.add(current);
26
+ try {
27
+ const keys = Reflect.ownKeys(current).filter((key) => !array || key !== 'length');
28
+ const entries = [];
29
+ for (const key of keys) {
30
+ if (remaining === 0)
31
+ break;
32
+ remaining -= 1;
33
+ let child;
34
+ try {
35
+ const descriptor = Object.getOwnPropertyDescriptor(current, key);
36
+ child = !descriptor ? node('unavailable', '[Property unavailable]')
37
+ : 'value' in descriptor ? visit(descriptor.value, depth + 1)
38
+ : node('accessor', '[Accessor not invoked]');
39
+ }
40
+ catch {
41
+ child = node('unavailable', '[Capture failed]');
42
+ }
43
+ const name = String(key);
44
+ entries.push(Object.freeze({ key: name.length > limits.text ? `${name.slice(0, limits.text - 1)}…` : name, value: child }));
45
+ }
46
+ return node(type, summary, { entries: Object.freeze(entries),
47
+ ...(entries.length < keys.length ? { truncated: true } : {}) });
48
+ }
49
+ finally {
50
+ ancestors.delete(current);
51
+ }
52
+ }
53
+ catch {
54
+ return node('unavailable', '[Capture failed]');
55
+ }
56
+ };
57
+ return visit(value, 0);
58
+ }
59
+ //# sourceMappingURL=valueSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueSnapshot.js","sourceRoot":"","sources":["../../src/model/valueSnapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityOverviewView.d.ts","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C,OAAgB,QAAQ,SAAkB;IACjC,MAAM;CAQlB"}
1
+ {"version":3,"file":"ActivityOverviewView.d.ts","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAGrC,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C,OAAgB,QAAQ,SAAkB;IACjC,MAAM;CAUlB"}
@@ -1,12 +1,15 @@
1
1
  import { h } from '@capillaryjs/capillary-ui';
2
2
  import { TraceView } from './shared.js';
3
+ import { nodeActivity } from '../model/projection.js';
3
4
  export class ActivityOverviewView extends TraceView {
4
5
  static hostName = 'traceactivity';
5
6
  render() {
6
7
  const counts = new Map();
7
8
  for (const event of this.events)
8
9
  counts.set(event.nodeId, (counts.get(event.nodeId) ?? 0) + 1);
9
- return this.host({ role: 'region', 'aria-label': 'Trace activity' }, h('h2', null, 'Activity'), h('ul', null, ...[...counts].sort((a, b) => b[1] - a[1]).map(([id, count]) => h('li', { key: id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(id) }, `${this.label(id)} · ${count} events`)))));
10
+ return this.host({ role: 'region', 'aria-label': 'Trace activity' }, h('h2', null, 'Activity'), h('ul', null, ...[...counts].sort((a, b) => b[1] - a[1]).map(([id, count]) => h('li', { key: id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(id) }, `${this.label(id)} · ${this.recording.nodes.find((node) => node.id === id)
11
+ ? nodeActivity(this.recording.nodes.find((node) => node.id === id), this.events.filter((event) => event.nodeId === id))
12
+ : `${count} events`}`)))));
10
13
  }
11
14
  }
12
15
  //# sourceMappingURL=ActivityOverviewView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityOverviewView.js","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,MAAM,CAAU,QAAQ,GAAG,eAAe,CAAA;IACjC,MAAM;QACX,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9F,OAAO,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EACxF,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CACzE,CAAC,CAAC,IAAI,EAAE,EAAC,GAAG,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAC,EAC/F,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC"}
1
+ {"version":3,"file":"ActivityOverviewView.js","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAA;AAEnD,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,MAAM,CAAU,QAAQ,GAAG,eAAe,CAAA;IACjC,MAAM;QACX,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9F,OAAO,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EACxF,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CACzE,CAAC,CAAC,IAAI,EAAE,EAAC,GAAG,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAC,EAC/F,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YACtE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;YACxH,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { h } from '@capillaryjs/capillary-ui';
2
- import { causalOutline } from '../model/projection.js';
2
+ import { causalOutline, eventValueText } from '../model/projection.js';
3
3
  import { TraceView } from './shared.js';
4
4
  export class CausalTraceView extends TraceView {
5
5
  static hostName = 'causaltrace';
@@ -15,7 +15,7 @@ export class CausalTraceView extends TraceView {
15
15
  const label = `#${event.sequence} ${this.label(event.nodeId)} · ${event.cause}`;
16
16
  const button = h('button', { type: 'button', 'data-event-id': event.id,
17
17
  'aria-current': events[this.cursor]?.id === event.id ? 'step' : undefined,
18
- onClick: () => this.choose(event) }, label, h('small', null, `${event.outcome ?? event.kind} · ${event.value.text}`));
18
+ onClick: () => this.choose(event) }, label, h('small', null, `${event.outcome ?? event.kind} · ${eventValueText(event)}`));
19
19
  const content = h('li', { key: event.id }, children.length
20
20
  ? h('details', { open: true }, h('summary', null, label), button, h('ol', { style: { paddingInlineStart: '1rem' } }, ...children.reverse())) : button);
21
21
  const parent = event.parentId && ids.has(event.parentId) ? event.parentId : null;
@@ -1 +1 @@
1
- {"version":3,"file":"CausalTraceView.js","sourceRoot":"","sources":["../../src/views/CausalTraceView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CausalTraceView.js","sourceRoot":"","sources":["../../src/views/CausalTraceView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FlowGraphView.d.ts","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,aAAc,SAAQ,SAAS;IACxC,OAAgB,QAAQ,SAAc;IACtC,OAAgB,GAAG,SAalB;IACQ,MAAM;CAuClB"}
1
+ {"version":3,"file":"FlowGraphView.d.ts","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,aAAc,SAAQ,SAAS;IACxC,OAAgB,QAAQ,SAAc;IACtC,OAAgB,GAAG,SAoBlB;IACQ,MAAM;CA8ClB"}
@@ -1,20 +1,27 @@
1
1
  import { h } from '@capillaryjs/capillary-ui';
2
- import { nodeValueEvent, projectFlow } from '../model/projection.js';
2
+ import { eventValueText, flowLayout, nodeActivity, nodeValueEvent, projectFlow } from '../model/projection.js';
3
3
  import { TraceView } from './shared.js';
4
4
  export class FlowGraphView extends TraceView {
5
5
  static hostName = 'traceflow';
6
6
  static css = `
7
+ & .trace-flow-surface { position: relative; min-width: 0; min-height: 0; }
8
+ & .trace-flow-surface > .trace-scroll { height: 100%; min-height: 0; }
7
9
  & .trace-canvas { position: relative; }
8
- & .trace-node { position: absolute; width: 218px; min-height: 100px; padding: .7rem; z-index: 1; border-inline-start: 4px solid var(--cap-trace-accent, #005bb8); }
10
+ & .trace-node { box-sizing: border-box; position: absolute; width: ${flowLayout.nodeWidth}px; min-height: 0; padding: .5rem .6rem; z-index: 1; border-inline-start: 4px solid var(--cap-trace-accent, #005bb8); line-height: 1.35; }
9
11
  & .trace-node[data-observed="false"] { border-style: dashed; border-inline-start-color: var(--cap-trace-muted, #526477); }
10
12
  & .trace-node[data-observed="true"][data-reached="false"] { border-inline-start-color: var(--cap-trace-line, #cad4de); }
11
13
  & .trace-node[aria-current="step"] { box-shadow: 0 0 0 3px var(--cap-trace-accent, #005bb8); }
12
- & .trace-node strong { display: block; overflow-wrap: anywhere; }
14
+ & .trace-node strong { display: block; overflow-wrap: anywhere; line-height: 1.35; }
15
+ & .trace-node small, & .trace-node span { line-height: 1.35; }
13
16
  & .trace-node span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
14
17
  & .trace-edge { position: absolute; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); transform-origin: left center; }
15
18
  & .trace-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); }
16
19
  & .trace-edge[data-observed="true"][data-reached="false"] { border-top-color: var(--cap-trace-line, #cad4de); color: var(--cap-trace-line, #cad4de); }
17
20
  & .trace-edge::after { content: ''; position: absolute; right: 0; top: -5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
21
+ & .trace-flow-help { position: absolute; inset-inline-start: .75rem; inset-block-end: 1rem; z-index: 2; box-sizing: border-box; max-inline-size: min(28rem, calc(100% - 1.5rem)); margin: 0; overflow: hidden; border: 1px solid var(--cap-trace-line, #cad4de); border-radius: .5rem; background: var(--cap-trace-surface, #fff); box-shadow: 0 .25rem .75rem rgb(0 0 0 / .18); }
22
+ & .trace-flow-help summary { padding: .4rem .6rem; cursor: pointer; font-weight: 600; user-select: none; }
23
+ & .trace-flow-help[open] summary { border-block-end: 1px solid var(--cap-trace-line, #cad4de); }
24
+ & .trace-flow-help p { margin: .5rem .6rem; }
18
25
  & .trace-leaves { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
19
26
  `;
20
27
  render() {
@@ -25,23 +32,26 @@ export class FlowGraphView extends TraceView {
25
32
  const byId = new Map(events.map((event) => [event.id, event]));
26
33
  const reachedEdges = new Set(events.filter((event) => reached.has(event.id) && event.parentId)
27
34
  .map((event) => `${byId.get(event.parentId)?.nodeId}:${event.nodeId}`));
28
- return this.host({ role: 'region', 'aria-label': 'Propagation graph' }, h('h2', null, 'Propagation graph'), h('p', null, 'Solid arrows: recorded propagation. Dashed arrows: known connections with no observed hop in this trace. Pale solid paths have not reached this step yet.'), !events.length ? h('p', { className: 'trace-empty' }, 'Select a recorded root to follow its flow.')
35
+ return this.host({ role: 'region', 'aria-label': 'Propagation graph' }, h('h2', null, 'Propagation graph'), h('div', { className: 'trace-flow-surface' }, h('details', { className: 'trace-flow-help', open: true }, h('summary', null, 'Legend'), h('p', null, 'Solid arrows: recorded propagation. Dashed arrows: known connections with no observed hop in this trace. Pale solid paths have not reached this step yet.'), h('p', null, 'Renders count executions, not visible changes. Own DOM writes exclude nested consumers; UI consumers can also have downstream children.')), !events.length ? h('p', { className: 'trace-empty' }, 'Select a recorded root to follow its flow.')
29
36
  : h('div', { className: 'trace-scroll', tabIndex: 0, 'aria-label': 'Scrollable flow graph' }, h('div', { className: 'trace-canvas', style: { width: `${flow.width}px`, height: `${flow.height}px` } }, ...flow.edges.map((edge) => {
30
37
  const from = positions.get(edge.from), to = positions.get(edge.to);
31
- const x = from.x + 218, y = from.y + 50, dx = to.x - x, dy = to.y + 50 - y;
38
+ const x = from.x + flowLayout.nodeWidth, y = from.y + flowLayout.edgeY;
39
+ const dx = to.x - x, dy = to.y + flowLayout.edgeY - y;
32
40
  return h('div', { key: `${edge.from}:${edge.to}`, className: 'trace-edge', 'aria-hidden': true,
33
41
  'data-observed': String(edge.observed), 'data-reached': String(reachedEdges.has(`${edge.from}:${edge.to}`)),
34
42
  style: { left: `${x}px`, top: `${y}px`,
35
43
  width: `${Math.hypot(dx, dy)}px`, transform: `rotate(${Math.atan2(dy, dx)}rad)` } });
36
44
  }), ...flow.nodes.map(({ node, events: occurrences, x, y, leaf }) => {
37
45
  const current = nodeValueEvent(occurrences.filter((event) => reached.has(event.id)));
46
+ const kind = node.kind === 'component' || node.kind === 'binding' ? 'UI' : node.kind;
47
+ const kindLabel = node.kind === 'component' || node.kind === 'binding' ? 'UI consumer' : node.kind;
38
48
  return h('button', { key: node.id, type: 'button', className: 'trace-node',
39
49
  'data-node-id': node.id, 'data-observed': String(occurrences.length > 0),
40
50
  'data-reached': String(Boolean(current)),
41
51
  'aria-current': events[this.cursor]?.nodeId === node.id ? 'step' : undefined,
42
52
  'aria-pressed': this.props.selection.state.get().nodeId === node.id,
43
- style: { left: `${x}px`, top: `${y}px` }, onClick: () => this.props.selection.selectNode(node.id) }, h('strong', null, node.label), h('small', null, `${node.kind} · ${occurrences.length} events`), h('span', null, current?.value.text ?? (occurrences.length ? 'Not reached at this step' : 'No recorded event')), leaf ? h('small', null, leaf) : null);
44
- }))), flow.nodes.some((node) => node.leaf) ? h('details', { open: true }, h('summary', null, 'Downstream leaves'), h('ul', { className: 'trace-leaves' }, ...flow.nodes.filter((node) => node.leaf).map(({ node, leaf, events: occurrences }) => h('li', { key: node.id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(node.id) }, `${node.label} — ${leaf}${occurrences.length ? '' : ' · unobserved'}`))))) : null);
53
+ style: { left: `${x}px`, top: `${y}px` }, onClick: () => this.props.selection.selectNode(node.id) }, h('strong', null, node.label), h('small', { title: kindLabel }, `${nodeActivity(node, occurrences)} · ${kind}`), h('span', { title: current ? eventValueText(current) : undefined }, current ? eventValueText(current) : (occurrences.length ? 'Not reached at this step' : 'No recorded event')), current?.fetchState ? h('small', null, `State: ${current.fetchState}`) : null, leaf ? h('small', null, leaf) : null);
54
+ })))), flow.nodes.some((node) => node.leaf) ? h('details', null, h('summary', null, 'Downstream leaves'), h('ul', { className: 'trace-leaves' }, ...flow.nodes.filter((node) => node.leaf).map(({ node, leaf, events: occurrences }) => h('li', { key: node.id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(node.id) }, `${node.label} — ${leaf}${occurrences.length ? '' : ' · unobserved'}`))))) : null);
45
55
  }
46
56
  }
47
57
  //# sourceMappingURL=FlowGraphView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlowGraphView.js","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowGraphView.js","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TraceDetailsView.d.ts","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,gBAAiB,SAAQ,SAAS;IAC3C,OAAgB,QAAQ,SAAiB;IAChC,MAAM;CA8BlB"}
1
+ {"version":3,"file":"TraceDetailsView.d.ts","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,gBAAiB,SAAQ,SAAS;IAC3C,OAAgB,QAAQ,SAAiB;IAChC,MAAM;CAsClB"}
@@ -1,5 +1,5 @@
1
1
  import { h } from '@capillaryjs/capillary-ui';
2
- import { captureLimitations, nodeValueEvent, traceAttempts } from '../model/projection.js';
2
+ import { captureLimitations, eventValueText, nodeActivity, nodeValueEvent, traceAttempts } from '../model/projection.js';
3
3
  import { TraceView } from './shared.js';
4
4
  export class TraceDetailsView extends TraceView {
5
5
  static hostName = 'tracedetails';
@@ -12,17 +12,28 @@ export class TraceDetailsView extends TraceView {
12
12
  const node = this.recording.nodes.find((candidate) => candidate.id === (selection.eventId ? event?.nodeId : selection.nodeId));
13
13
  const fields = [
14
14
  ['Node', node?.label ?? 'Select a node or event'], ['Identity', node?.id ?? '—'], ['Kind', node?.kind ?? '—'],
15
- ...(node ? [['First observed', `#${node.firstSequence}`],
16
- ['Disposed', node.disposedSequence === null ? 'Not observed' : `#${node.disposedSequence}`]] : []),
17
- ...(event ? [
18
- ['Event', `#${event.sequence} · ${event.id}`], ['Cause', event.cause], ['Outcome', event.outcome ?? event.kind],
19
- ['Before', event.before?.text ?? 'Not captured'], ['Value', event.value.text + (event.value.truncated ? '… (truncated)' : '')],
20
- ['Fetch state', event.fetchState ?? '—'], ['Error', event.error?.text ?? '—'],
21
- ['Parent', event.parentId ?? 'Root event'], ['Attempt', event.attemptId ?? '—'],
22
- ] : []),
23
15
  ];
16
+ if (node)
17
+ fields.push(['Activity', nodeActivity(node, this.events.filter((candidate) => candidate.nodeId === node.id))], ['First observed', `#${node.firstSequence}`], ['Disposed', node.disposedSequence === null ? 'Not observed' : `#${node.disposedSequence}`]);
18
+ if (event)
19
+ fields.push(['Event', `#${event.sequence} · ${event.id}`], ['Cause', event.cause], ['Outcome', event.outcome ?? event.kind], ['Before', previewValue(event.before, event.before?.text ?? 'Not captured')], ['Value / effect', previewValue(event.value, eventValueText(event))], ['Fetch state', event.fetchState ?? '—'], ['Error', previewValue(event.error, event.error?.text ?? '—')], ['Parent', event.parentId ?? 'Root event'], ['Attempt', event.attemptId ?? '—']);
20
+ if (event?.consumer)
21
+ fields.push(['Triggered by', event.consumer.trigger], ['Own renderer DOM writes', event.consumer.domWrites === undefined ? 'Unknown / not completed' : String(event.consumer.domWrites)]);
24
22
  const attempts = traceAttempts(this.events).filter((attempt) => attempt.nodeId === node?.id);
25
- return this.host({ role: 'region', 'aria-label': 'Trace details' }, h('h2', null, 'Trace details'), h('dl', null, ...fields.flatMap(([label, value]) => [h('dt', null, label), h('dd', null, value)])), node && !event ? h('p', null, 'This node is known through topology, but has no selected event at this cursor.') : null, event?.inputs.length ? h('details', { open: true }, h('summary', null, 'Inputs used'), h('ul', null, ...event.inputs.map((input) => h('li', { key: input.nodeId }, `${this.label(input.nodeId)}: ${input.value.text}`)))) : null, attempts.length ? h('details', { open: true }, h('summary', null, 'Request attempts (complete selected trace)'), h('ul', null, ...attempts.map((attempt) => h('li', { key: attempt.id }, `${attempt.id}: ${attempt.status}${attempt.durationMs === null ? '' : ` · ${attempt.durationMs} ms`}`)))) : null, h('div', { className: 'trace-limit', role: 'note', 'aria-label': 'Capture limitations' }, ...captureLimitations(this.recording).map((message) => h('p', null, message))));
23
+ return this.host({ role: 'region', 'aria-label': 'Trace details' }, h('h2', null, 'Trace details'), h('dl', null, ...fields.flatMap(([label, value]) => [h('dt', null, label), h('dd', null, value)])), event?.consumer ? h('p', null, 'Renderer counts exclude nested consumers and application DOM code. They do not measure browser paint or layout.') : null, node && !event ? h('p', null, 'This node is known through topology, but has no selected event at this cursor.') : null, event?.inputs.length ? h('details', { open: true }, h('summary', null, 'Inputs used'), h('ul', null, ...event.inputs.map((input) => h('li', { key: input.nodeId }, `${this.label(input.nodeId)}: `, previewValue(input.value, input.value.text))))) : null, attempts.length ? h('details', { open: true }, h('summary', null, 'Request attempts (complete selected trace)'), h('ul', null, ...attempts.map((attempt) => h('li', { key: attempt.id }, `${attempt.id}: ${attempt.status}${attempt.durationMs === null ? '' : ` · ${attempt.durationMs} ms`}`)))) : null, h('div', { className: 'trace-limit', role: 'note', 'aria-label': 'Capture limitations' }, ...captureLimitations(this.recording).map((message) => h('p', null, message))));
26
24
  }
27
25
  }
26
+ function previewValue(preview, fallback) {
27
+ if (!preview || preview.type !== 'object') {
28
+ return `${fallback}${preview?.truncated ? '… (truncated)' : ''}`;
29
+ }
30
+ if (preview.snapshot)
31
+ return snapshotTree(null, preview.snapshot);
32
+ return h('span', { className: 'trace-limit' }, `${fallback}${preview.truncated ? '… (truncated)' : ''} · expandable contents were not captured. Use TraceRecorder({capture: 'snapshot'}) and record again.`);
33
+ }
34
+ function snapshotTree(label, value) {
35
+ const text = `${label == null ? '' : `${label}: `}${value.text}${value.truncated ? ' … (truncated)' : ''}`;
36
+ return value.entries ? h('details', null, h('summary', null, text), h('ul', null, ...value.entries.map((entry, index) => h('li', { key: index }, snapshotTree(entry.key, entry.value)))))
37
+ : h('span', null, text);
38
+ }
28
39
  //# sourceMappingURL=TraceDetailsView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TraceDetailsView.js","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TraceDetailsView.js","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { h } from '@capillaryjs/capillary-ui';
2
2
  import { TraceRecorder } from '../model/TraceRecorder.js';
3
- import { traceRoots, captureLimitations } from '../model/projection.js';
3
+ import { traceRoots, captureLimitations, eventValueText } from '../model/projection.js';
4
4
  import { TraceView } from './shared.js';
5
5
  import { FlowGraphView } from './FlowGraphView.js';
6
6
  import { CausalTraceView } from './CausalTraceView.js';
@@ -15,9 +15,9 @@ export class TraceInspector extends TraceView {
15
15
  TraceTimelineView, TracePlaybackControls, ActivityOverviewView];
16
16
  static css = `
17
17
  & .trace-workbench { display: grid; grid-template-columns: minmax(12rem, 17rem) minmax(0, 1fr); gap: 1rem; }
18
- & .trace-stack { display: grid; gap: 1rem; min-width: 0; }
18
+ & .trace-stack { display: flex; flex-flow: column nowrap; gap: 1rem; min-width: 0; }
19
19
  & .trace-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .7fr); gap: 1rem; }
20
- & .trace-roots { display: grid; gap: .4rem; padding: 0; list-style: none; }
20
+ & .trace-roots { display: flex; flex-flow: column nowrap; gap: .4rem; padding: 0; list-style: none; }
21
21
  & .trace-roots button { width: 100%; }
22
22
  & select { max-width: 18rem; }
23
23
  @media (max-width: 900px) { & .trace-workbench, & .trace-columns { grid-template-columns: minmax(0, 1fr); } & .trace-roots { max-height: 12rem; overflow: auto; } }
@@ -33,8 +33,8 @@ export class TraceInspector extends TraceView {
33
33
  this.props.playback?.seek(null, 0);
34
34
  } }, h('option', { value: '' }, 'All'), ...this.recording.nodes.map((node) => h('option', { key: node.id, value: node.id }, node.label))));
35
35
  return this.host({ role: 'region', 'aria-label': 'Capillary DevTools' }, h('div', { className: 'trace-actions' }, h('h2', null, 'Capillary DevTools'), h('span', { role: 'status' }, `${this.recording.capture.active ? 'Recording' : 'Stopped'} · ${this.recording.events.length} events`), recorder ? h('button', { type: 'button', onClick: () => this.recording.capture.active ? recorder.stop() : recorder.start() }, this.recording.capture.active ? 'Stop capture' : 'Start capture') : null, recorder ? h('button', { type: 'button', onClick: () => { recorder.reset(); this.props.selection.selectRoot(null); this.props.playback?.seek(null, 0); } }, 'Clear recording') : null), ...captureLimitations(this.recording).map((message) => h('p', { key: message, className: 'trace-limit' }, message)), h('div', { key: 'workbench', className: 'trace-workbench' }, h('nav', { className: 'trace-pane', 'aria-label': 'Recorded roots' }, h('h3', null, 'Recorded roots'), roots.length ? h('ol', { className: 'trace-roots' }, ...roots.map((root) => h('li', { key: root.id }, h('button', { type: 'button', 'data-root-id': root.id, 'aria-pressed': state.rootId === root.id,
36
- onClick: () => { this.props.selection.selectRoot(root.id); this.props.playback?.seek(null, 0); } }, `${this.label(root.nodeId)} · ${root.cause}`, h('small', null, `#${root.sequence} · ${root.value.text}`)))))
37
- : h('p', null, 'Interact with the application to record a trace.')), h('div', { className: 'trace-stack' }, h('div', { className: 'trace-actions' }, filter('source'), filter('target')), h('div', { className: 'trace-pane' }, h(FlowGraphView, this.props)), h('div', { className: 'trace-pane' }, h(TracePlaybackControls, this.props)), h('div', { className: 'trace-columns' }, h('div', { className: 'trace-pane trace-scroll' }, h(CausalTraceView, this.props)), h('div', { className: 'trace-pane' }, h(TraceDetailsView, this.props))), h('details', { className: 'trace-pane' }, h('summary', null, 'Chronological events'), h(ChronologicalTraceView, this.props)), h('details', { className: 'trace-pane' }, h('summary', null, 'Timeline and activity'), h(TraceTimelineView, this.props), h(ActivityOverviewView, this.props)))));
36
+ onClick: () => { this.props.selection.selectRoot(root.id); this.props.playback?.seek(null, 0); } }, `${this.label(root.nodeId)} · ${root.cause}`, h('small', null, `#${root.sequence} · ${eventValueText(root)}`)))))
37
+ : h('p', null, 'Interact with the application to record a trace.')), h('div', { className: 'trace-stack' }, h('div', { className: 'trace-actions' }, filter('source'), filter('target')), h('div', { className: 'trace-columns' }, h('div', { className: 'trace-pane' }, h(FlowGraphView, this.props)), h('div', { className: 'trace-pane' }, h(TraceDetailsView, this.props))), h('div', { className: 'trace-pane' }, h(TracePlaybackControls, this.props)), h('div', { className: 'trace-pane trace-scroll' }, h(CausalTraceView, this.props)), h('details', { className: 'trace-pane' }, h('summary', null, 'Chronological events'), h(ChronologicalTraceView, this.props)), h('details', { className: 'trace-pane' }, h('summary', null, 'Timeline and activity'), h(TraceTimelineView, this.props), h(ActivityOverviewView, this.props)))));
38
38
  }
39
39
  }
40
40
  //# sourceMappingURL=TraceInspector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TraceInspector.js","sourceRoot":"","sources":["../../src/views/TraceInspector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TraceInspector.js","sourceRoot":"","sources":["../../src/views/TraceInspector.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capillaryjs/capillary-devtools",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Bounded causal recordings and composable Capillary flow inspection tools.",
@@ -58,12 +58,12 @@
58
58
  "prepack": "pnpm typecheck && pnpm test && pnpm build && pnpm test:types:consumer"
59
59
  },
60
60
  "peerDependencies": {
61
- "@capillaryjs/capillary": "^1.2.0",
62
- "@capillaryjs/capillary-ui": "^1.2.0"
61
+ "@capillaryjs/capillary": "^1.3.0",
62
+ "@capillaryjs/capillary-ui": "^1.3.0"
63
63
  },
64
64
  "devDependencies": {
65
- "@capillaryjs/capillary": "^1.2.0",
66
- "@capillaryjs/capillary-ui": "^1.2.0"
65
+ "@capillaryjs/capillary": "^1.3.0",
66
+ "@capillaryjs/capillary-ui": "^1.3.0"
67
67
  },
68
68
  "engines": {
69
69
  "node": ">=22",
@@ -29,6 +29,7 @@
29
29
  align-items: stretch;
30
30
  min-inline-size: 0;
31
31
  min-block-size: 0;
32
+ gap: calc(var(--_cap-island-flow, 0) * var(--island-gap, 0px));
32
33
  }
33
34
 
34
35
  .cap-layout-horizontal {
@@ -50,11 +51,55 @@
50
51
  }
51
52
 
52
53
  .cap-scroll {
54
+ /* Move the clip into the surrounding gutter without moving the
55
+ * content. The inherited allowance is owned by the parent layout,
56
+ * so local gaps and nested scrollports do not add extra spacing. */
57
+ --_cap-scroll-gutter: calc(var(--_cap-island-flow, 0) * var(--_cap-island-gutter, 0px));
58
+ margin: calc(-1 * var(--_cap-scroll-gutter));
59
+ padding: var(--_cap-scroll-gutter);
53
60
  overflow: auto;
54
61
  min-inline-size: 0;
55
62
  min-block-size: 0;
56
63
  }
57
64
 
65
+ /* The mode crosses wrappers; each layout resolves its own public gap.
66
+ * Only the first enabled scope contributes a perimeter inset. */
67
+ .cap-island-layout {
68
+ --_cap-island-flow: 1;
69
+ --_cap-island-margin: 0px;
70
+ --_cap-island-separator-background: transparent;
71
+ box-sizing: border-box;
72
+ padding: var(--_cap-island-outer-inset, var(--island-inset, 0px));
73
+ gap: calc(var(--_cap-island-flow, 0) * var(--island-gap, 0px));
74
+ }
75
+
76
+ .cap-island-layout > * {
77
+ --_cap-island-outer-inset: 0px;
78
+ }
79
+
80
+ .cap-layout-horizontal > *,
81
+ .cap-layout-vertical > *,
82
+ .cap-island-layout > * {
83
+ --_cap-island-gutter: calc(var(--_cap-island-flow, 0) * var(--island-gap, 0px) / 2);
84
+ }
85
+
86
+ .cap-island-layout.cap-scroll {
87
+ padding: calc(var(--_cap-island-outer-inset, var(--island-inset, 0px))
88
+ + var(--_cap-scroll-gutter));
89
+ }
90
+
91
+ .cap-island-layout-off {
92
+ --_cap-island-flow: 0;
93
+ --_cap-island-margin: initial;
94
+ --_cap-island-separator-background: initial;
95
+ }
96
+
97
+ .cap-island-layout-off > *,
98
+ .island > * {
99
+ --_cap-island-outer-inset: initial;
100
+ --_cap-island-gutter: 0px;
101
+ }
102
+
58
103
  .colored {
59
104
  --colored-base-bg:
60
105
  linear-gradient(
@@ -72,10 +117,12 @@
72
117
 
73
118
  .app-footer.island,
74
119
  .island {
120
+ --_cap-island-flow: 0;
121
+ --_cap-island-separator-background: initial;
75
122
  box-sizing: border-box;
76
123
  min-width: 0;
77
124
  min-height: 0;
78
- margin: var(--island-margin);
125
+ margin: var(--_cap-island-margin, var(--island-margin));
79
126
  padding: var(--island-padding);
80
127
  background: var(--island-background);
81
128
  border: var(--island-border);
@@ -85,13 +132,13 @@
85
132
 
86
133
  .cap-fill-horizontal.island,
87
134
  .cap-fill-horizontal .island {
88
- max-width: calc(100% - (2 * var(--island-margin)));
135
+ max-width: calc(100% - (2 * var(--_cap-island-margin, var(--island-margin))));
89
136
  overflow-x: auto;
90
137
  }
91
138
 
92
139
  .cap-fill-vertical.island,
93
140
  .cap-fill-vertical .island {
94
- max-height: calc(100% - (2 * var(--island-margin)));
141
+ max-height: calc(100% - (2 * var(--_cap-island-margin, var(--island-margin))));
95
142
  overflow-y: auto;
96
143
  }
97
144
 
@@ -308,24 +355,31 @@ cap-traceactivity { display: block; min-width: 0; color: var(--cap-trace-text, #
308
355
  cap-traceactivity .trace-limit { border-inline-start: 3px solid var(--cap-trace-warning, #ae6500); padding-inline-start: .7rem; }
309
356
 
310
357
  cap-traceinspector .trace-workbench { display: grid; grid-template-columns: minmax(12rem, 17rem) minmax(0, 1fr); gap: 1rem; }
311
- cap-traceinspector .trace-stack { display: grid; gap: 1rem; min-width: 0; }
358
+ cap-traceinspector .trace-stack { display: flex; flex-flow: column nowrap; gap: 1rem; min-width: 0; }
312
359
  cap-traceinspector .trace-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .7fr); gap: 1rem; }
313
- cap-traceinspector .trace-roots { display: grid; gap: .4rem; padding: 0; list-style: none; }
360
+ cap-traceinspector .trace-roots { display: flex; flex-flow: column nowrap; gap: .4rem; padding: 0; list-style: none; }
314
361
  cap-traceinspector .trace-roots button { width: 100%; }
315
362
  cap-traceinspector select { max-width: 18rem; }
316
363
  @media (max-width: 900px) { cap-traceinspector .trace-workbench, cap-traceinspector .trace-columns { grid-template-columns: minmax(0, 1fr); } cap-traceinspector .trace-roots { max-height: 12rem; overflow: auto; } }
317
364
 
318
- cap-traceflow .trace-canvas { position: relative; }
319
- cap-traceflow .trace-node { position: absolute; width: 218px; min-height: 100px; padding: .7rem; z-index: 1; border-inline-start: 4px solid var(--cap-trace-accent, #005bb8); }
365
+ cap-traceflow .trace-flow-surface { position: relative; min-width: 0; min-height: 0; }
366
+ cap-traceflow .trace-flow-surface > .trace-scroll { height: 100%; min-height: 0; }
367
+ cap-traceflow .trace-canvas { position: relative; }
368
+ cap-traceflow .trace-node { box-sizing: border-box; position: absolute; width: 192px; min-height: 0; padding: .5rem .6rem; z-index: 1; border-inline-start: 4px solid var(--cap-trace-accent, #005bb8); line-height: 1.35; }
320
369
  cap-traceflow .trace-node[data-observed="false"] { border-style: dashed; border-inline-start-color: var(--cap-trace-muted, #526477); }
321
370
  cap-traceflow .trace-node[data-observed="true"][data-reached="false"] { border-inline-start-color: var(--cap-trace-line, #cad4de); }
322
371
  cap-traceflow .trace-node[aria-current="step"] { box-shadow: 0 0 0 3px var(--cap-trace-accent, #005bb8); }
323
- cap-traceflow .trace-node strong { display: block; overflow-wrap: anywhere; }
372
+ cap-traceflow .trace-node strong { display: block; overflow-wrap: anywhere; line-height: 1.35; }
373
+ cap-traceflow .trace-node small, cap-traceflow .trace-node span { line-height: 1.35; }
324
374
  cap-traceflow .trace-node span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
325
375
  cap-traceflow .trace-edge { position: absolute; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); transform-origin: left center; }
326
376
  cap-traceflow .trace-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); }
327
377
  cap-traceflow .trace-edge[data-observed="true"][data-reached="false"] { border-top-color: var(--cap-trace-line, #cad4de); color: var(--cap-trace-line, #cad4de); }
328
378
  cap-traceflow .trace-edge::after { content: ''; position: absolute; right: 0; top: -5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
379
+ cap-traceflow .trace-flow-help { position: absolute; inset-inline-start: .75rem; inset-block-end: 1rem; z-index: 2; box-sizing: border-box; max-inline-size: min(28rem, calc(100% - 1.5rem)); margin: 0; overflow: hidden; border: 1px solid var(--cap-trace-line, #cad4de); border-radius: .5rem; background: var(--cap-trace-surface, #fff); box-shadow: 0 .25rem .75rem rgb(0 0 0 / .18); }
380
+ cap-traceflow .trace-flow-help summary { padding: .4rem .6rem; cursor: pointer; font-weight: 600; user-select: none; }
381
+ cap-traceflow .trace-flow-help[open] summary { border-block-end: 1px solid var(--cap-trace-line, #cad4de); }
382
+ cap-traceflow .trace-flow-help p { margin: .5rem .6rem; }
329
383
  cap-traceflow .trace-leaves { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
330
384
 
331
385
  cap-causaltrace ol { list-style: none; padding: 0; margin: 0; } cap-causaltrace li { margin: .25rem 0; } cap-causaltrace summary { cursor: pointer; } cap-causaltrace button { max-width: 100%; overflow-wrap: anywhere; }