Table of Contents

Enum CacheSectionId

Namespace
Typhon.Profiler
Assembly
Typhon.Profiler.dll

Identifies each section in the cache file. Values are wire-stable; never renumber or reuse a retired ID — only append.

public enum CacheSectionId : ushort

Fields

ArchetypeDefinitions = 13

Rich archetype definitions (v14): one record per archetype with parent/child links, slot-ordered ComponentTypeIds, versioned/transient slot bitmasks, cascade-delete targets, cluster eligibility flags, and (when cluster-eligible) inline ArchetypeClusterInfo describing on-disk SoA layout. Drives the Workbench ArchetypeBrowser + relationship view.

ChunkManifest = 4

Chunk manifest (ChunkManifestEntry[]). Drives the client's cache keying + the server's chunk-serving path.

ComponentDefinitions = 12

Rich component-type definitions (v14): one record per registered component type, carrying full schema (fields with name + FieldType + offset + size + index flags + spatial flag), storage mode (Versioned/SingleVersion/Transient), revision, and per-component aggregates (storage size, indices count, multiple-indices count). Forwarded verbatim from the source .typhon-trace's ComponentDefinitionsTable (v7+). Drives the Workbench SchemaBrowser and per-component detail panels for trace sessions — the existing thin SourceMetadata's ComponentTypeTable carries only id→name pairs and isn't enough.

EventQueueCatalog = 16

Event-queue catalog (v14): for each registered queue, QueueIndex (matches QueueId), display name (mirrors QueueNameTable), capacity (power-of-2), and event type's CLR name. Adds the static schema (capacity / event-type) on top of the existing name table so the queue panel can show capacity utilisation in % terms against per-tick depth from QueueTickSummaries.

FoldedChunkData = 5

Concatenated LZ4-compressed chunk payloads. Addressed by CacheByteOffset + Length.

GlobalMetrics = 3

Global metrics (GlobalMetricsFixed + optional per-system aggregates).

IndexCatalog = 14

Index catalog (v14): flat list keyed by (ComponentTypeId, FieldId) of every B+Tree index defined on the schema. Each entry carries the variant byte (Single/Multiple × value-type), a key-type byte, and the spatial / allow-multiple flags. Drives the SchemaIndexes panel; redundant with the per-field flags in ComponentDefinitions but flat-listed here for O(1) lookup independent of component selection.

Invalid = 0

Not valid; guards against zero-initialized entries.

PostTickSummaries = 10

Per-tick post-tick serial markers (PostTickSummary[]) added in v12 — one record per tick, capturing the durations of each TickPhase region that runs serially after the system DAG completes. Folded from the existing RuntimePhaseSpan wire events (kind 243); no new wire-format kind needed.

QueueNameTable = 11

Queue-name intern table written in v12. Variable-length: u16 count followed by count × (u16 queueId + short-string name). QueueId is the index assigned at engine startup; readers map QueueId → display name through this section.

QueueTickSummaries = 9

Per-(tick, queue) rollup records (QueueTickSummary[]) added in v12. Sorted by (TickNumber, QueueId). Folded from a new QueueTickEnd wire event the engine emits at end-of-tick per active event queue.

ResourceGraphSnapshot = 17

Resource graph snapshot (v14): pre-order tree walk of the ResourceGraph at trace start — node id, name, type byte, parent id (-1 for root), creation timestamp, and exhaustion-policy byte. Static (resource topology doesn't change at runtime in any way the trace cares about). Drives the resource-tree panel for trace sessions.

RuntimeConfig = 15

Engine runtime configuration snapshot at trace start (v14): BaseTickRate, WorkerCount, TelemetryRingCapacity, ParallelQueryMinChunkSize, DefaultPhase name, and the ordered phase-name list from RuntimeOptions. Single record (no count prefix). Phase names duplicate the trace's PostTickSummaries phase axis but include the definition order — reader exposes both axes side-by-side in the runtime-config panel.

SourceMetadata = 7

Verbatim copy of the source's metadata prefix: TraceFileHeader + system definitions table + archetypes table + component-types table, in the same wire format produced by TraceFileWriter (and shipped over TCP as the engine's Init frame payload during attach). Optional — present iff IsSelfContained is set on the header. Loaders detect the flag and project metadata from these bytes via a TraceFileReader over a MemoryStream, skipping the source-file open entirely. Source-derived caches (the default) omit this section; their metadata still comes from the parent .typhon-trace at open time.

SpanNameTable = 6

Flat copy of the source file's optional span-name intern table. Count prefix (u16) + entries (u16 id, short-string name).

SystemArchetypeTouches = 18

Per-(tick, system, archetype) entity-touch rollup (SystemArchetypeTouchSummary[]) added in v15 for the Workbench Data Flow module (#327). Folded from the new SchedulerSystemArchetype wire event the engine emits at parallel-query completion. Sparse — most systems target one archetype, and most ticks emit one row per active system. Sorted by (TickNumber, SystemIndex, ArchetypeId). Drives the archetype/, system-archetype/, and component-family/* track families surfaced through AggregationService.

SystemTickSummaries = 8

Per-(tick, system) rollup records (SystemTickSummary[]) added in v12 for the Workbench Data API per-system tracks (RFC 07 surfacing). Sorted by (TickNumber, SystemIndex) for deterministic binary search. Always dense across systems in a tick (skipped systems present, with SkipReason != NotSkipped). Folded by IncrementalCacheBuilder from the existing SystemReady / SystemSkipped / SchedulerChunk wire events — no new wire-format kind needed.

TickIndex = 1

Per-tick index (TickIndexEntry[]), sorted by tick number. Enables binary search for source-file seeks.

TickSummaries = 2

Per-tick aggregates (TickSummary[]). Drives the viewer's overview-timeline render.