pub const CROSSTRACK_DDL: &str = "
CREATE TABLE IF NOT EXISTS disassembly (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL REFERENCES sessions(id),
symbol_id INTEGER REFERENCES symbols(id),
source TEXT NOT NULL,
tier TEXT,
code_bytes INTEGER,
asm_text TEXT NOT NULL,
asm_lines_json TEXT,
collected_at TEXT NOT NULL,
trigger TEXT,
layer_id INTEGER REFERENCES layers(id)
);
CREATE INDEX IF NOT EXISTS idx_disasm_sym ON disassembly(symbol_id);
CREATE TABLE IF NOT EXISTS source_snapshots (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL REFERENCES sessions(id),
symbol_id INTEGER REFERENCES symbols(id),
file TEXT,
line_start INTEGER,
line_end INTEGER,
text TEXT,
content_hash TEXT,
collected_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_src_sym ON source_snapshots(symbol_id);
CREATE TABLE IF NOT EXISTS alloc_sites (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL REFERENCES sessions(id),
symbol_id INTEGER REFERENCES symbols(id),
bytes_total INTEGER,
count INTEGER,
largest_bytes INTEGER,
collected_at TEXT NOT NULL,
layer_id INTEGER REFERENCES layers(id)
);
CREATE INDEX IF NOT EXISTS idx_alloc_site_sym ON alloc_sites(symbol_id);
";Expand description
Cross-track shared tables — joinable from either debug or profile
tracks via symbol_id. Populated by on-demand collectors.