mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-05-06 17:49:07 -05:00
[PR #1348] [MERGED] feat(vault): v0.9.0 — YAML source of truth + release pipeline + CC-BY-NC-4.0 corpus #8136
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/harvard-edge/cs249r_book/pull/1348
Author: @profvjreddi
Created: 4/16/2026
Status: ✅ Merged
Merged: 4/16/2026
Merged by: @profvjreddi
Base:
dev← Head:feat/vault-architecture📝 Commits (10+)
84a381ddocs(vault): Round 1 review ledger — 4 reviewers, 50+ findingsc51ca7bdocs(vault): architecture v2 (Round-1 review integration)aa5db46docs(vault): architecture v2.1 (Round-2 review integration)eaca501docs(vault): detailed testing plan and cutover QA checklist5ee46fcfeat(vault-cli): Phase 0 package scaffold6dff01cdocs(vault): Phase 0 documentation deliverables8af0948ci(vault): Phase 0 CI workflow + exemplar-coverage audit812ba40feat(vault): Phase 1 core — schema, hashing, policy, loader, validatorf633cc9feat(vault-cli): Phase 1 commands — build, check, new/edit/rm/restore/move, api, serve7a8b016feat(vault): Phase 1 corpus split — 9,657 YAML files, 9,199 published📊 Changes
9783 files changed (+499014 additions, -156561 deletions)
View changed files
➖
.github/workflows/staffml-link-check.yml(+0 -247)➕
.github/workflows/vault-ci.yml(+148 -0)➕
.github/workflows/vault-content-hash-sli.yml(+148 -0)➕
interviews/CONTRIBUTING.md(+190 -0)📝
interviews/README.md(+3 -3)📝
interviews/paper/corpus_stats.json(+46 -1073)📝
interviews/paper/macros.tex(+41 -27)📝
interviews/paper/scripts/generate_macros.py(+72 -123)➕
interviews/staffml-vault-types/index.ts(+80 -0)➕
interviews/staffml-vault-types/package.json(+9 -0)➕
interviews/staffml-vault-worker/.gitignore(+7 -0)➕
interviews/staffml-vault-worker/README.md(+58 -0)➕
interviews/staffml-vault-worker/migrations/0001_bootstrap.sql(+81 -0)➕
interviews/staffml-vault-worker/package-lock.json(+3456 -0)➕
interviews/staffml-vault-worker/package.json(+21 -0)➕
interviews/staffml-vault-worker/src/index.ts(+518 -0)➕
interviews/staffml-vault-worker/src/rate_limit.ts(+83 -0)➕
interviews/staffml-vault-worker/src/types.ts(+64 -0)➕
interviews/staffml-vault-worker/tests/worker.test.ts(+195 -0)➕
interviews/staffml-vault-worker/tsconfig.json(+19 -0)...and 80 more files
📄 Description
StaffML vault architecture migration
Status: migration-complete in-repo; deploy-gated on your
wrangler login.What this does
Moves the 9,199-question StaffML corpus from a 19 MB JSON blob inlined into every page bundle to a proper YAML-as-source + SQLite-build + edge-D1 serving architecture.
interviews/vault/questions/). Pre-commit hook refuses direct edits to the generatedcorpus.json; CI enforces YAML → JSON equivalence.vaultCLI for authoring, building, releasing, verifying, shipping.interviews/vault/releases/0.9.0/withvault.db,release.json, migration SQL, and release_hashfe69d4c4...reproducible from YAML source viavault verify.interviews/vault/questions/LICENSE); vault-cli unchanged from historical state.The bug this closes
v1 paper reported 9,199 questions; v1 site rendered 8,053. They used different filter predicates. Post-migration: both read from the same SQL over the same
vault.dbwith a singlerelease-policy.yamlpredicate. Paper and site agree by construction.Review history
Four full adversarial review rounds with Chip Huyen, Jeff Dean, Soumith Chintala, and an industry-engineer lens. 80+ findings, all integrated or explicitly deferred with rationale. See
interviews/vault/REVIEWS.md.Tests
vault check --stricton 9,657 questions: 0 load errors, 0 invariant failuresvault verify 0.9.0: citation round-trip passesDeploy runbook
See
interviews/vault-cli/docs/CUTOVER_QA.mdfor the sequential operator checklist. Phase-3 entry gates (FTS5 load test) and Phase-4 cutover (canary ship + 48h watch) are user-action when ready.Companion docs
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.