Skip to content

Ship Log

High-level feature tracker — what shipped, what's in progress, what's backlogged

Ship Log

High-level tracker for features, infrastructure, and research milestones. Updated each session. Source of truth for “what’s the status of X?”

Legend: ✅ Shipped | 🚧 In Progress | 📋 Backlogged | ❌ Rejected/Deferred


2026-03-15: Data Studio + Parquet Datalake

FeatureStatusWhat Was DoneNotes
JSON prop serialization fix✅ ShippedBciKql self-fetches from /data/kql-tables.json instead of 2-3MB inline props98% page weight reduction
Impact chains lazy loading✅ Shipped1.8MB loaded only when user queries impact_chains tableSplit into separate JSON file
Parquet conversion pipeline✅ Shipped27 JSON → 31 Parquet files, 722KB total (77% reduction)PyArrow, Zstd L3, single row groups
Data Studio catalog page✅ Shipped/data-studio/ with 31 dataset cards, search, category filters, download linksQuick Start code examples for pandas/DuckDB/Polars
EEG sample browser✅ Shipped/data-studio/eeg/ with 16 datasets, condition filters, TARA mappingsFrequency band reference component
TARA-EEG signal mappings✅ Shipped7 real EEG datasets mapped to TARA techniques with neuromodesty qualifiersAAN TBR disclaimer on ADHD datasets
MNE-Python EEG pipeline✅ ShippedEDF/MAT → filter → epoch → PSD → Parquet with full privacy controlsMotor imagery processed: 914 epochs, 1.75M rows
DuckDB-WASM SQL console✅ ShippedLazy-loaded from jsDelivr CDN, example queries, CSV exportQuery validation hardened (P0 security fixes)
SQL query validation✅ ShippedBlocks COPY/ATTACH/EXPORT/CREATE/ALTER/DROP + double-quote bypass3 critical vulns found by Quorum, all fixed
CDN version pinning✅ ShippedJSDELIVR_BASE pinned to @1.29.0 (was @latest)Supply chain risk closed
Fetch caching (DataStudioBrowser)✅ ShippeduseRef cache for kql-tables.json — single fetch per sessionWas 558KB per preview click
CSV export timing✅ ShippedURL.revokeObjectURL delayed 500msPrevents interrupted downloads
Schema disclaimer on preview✅ Shipped”Preview from KQL layer, schema may differ from Parquet”Addresses preview vs download mismatch
REF badge on micro-datasets✅ ShippedDatasets with ≤5 rows get “REF” labelPrevents confusion on 1-row datasets
Redistributable EEG filter✅ ShippedCheckbox filter in EEG browser11 of 16 datasets redistributable
EDF PII stripping expanded✅ Shippeddescription, proj_name, proj_id, device_info, file_id now strippedSecurity review finding
DECISION-LOG.md auto-generation✅ Shippednpm run decisions generates from derivation log15 decisions extracted from 105 entries
TRANSPARENCY.md auto-generation✅ Shippednpm run transparency generates from derivation logFrontmatter matches Astro content schema
Governance pre-commit hook✅ Shippedscripts/governance-precommit.sh scans for Tier 1 sensitive patterns13 pattern categories, whitelist for known-safe
CLAUDE.md Auto-Track rewrite✅ Shipped3-question filter, per-session cadence, sensitive info tiersReplaces granular trigger list
Ship Log (this file)✅ ShippedHigh-level feature tracker with statusYou’re reading it
SRI integrity hashes for WASM📋 BackloggedNeed to compute from specific DuckDB versionLow risk — CDN is pinned
DuckDB-WASM end-to-end test📋 BackloggedManual browser testing in preview modeMust verify before enabling SQL console publicly
Promise.race query cancellation📋 BackloggedDuckDB-WASM may not support cancelDocumented limitation
hyparquet for direct Parquet browsing📋 BackloggedKQL JSON preview works; hyparquet would read Parquet directlyWaiting on adoption data
TanStack Table / CodeMirror 6 / uPlot📋 BackloggedCurrent inline table + textarea works for MVPPhase 4 if needed
Service worker for offline access❌ DeferredOverkill at current scaleReconsider if user base grows
Parquet as runtime browser format❌ RejectedDevil’s Advocate: Parquet overhead exceeds benefit at 4.3MBParquet is download + build format only

How to Update This File

Add a new date section at the top when a session produces shipped features. Each row = one feature or decision. Keep it scannable — title + status + one-line description + notes. This is the “executive dashboard” — the derivation log has the deep context.