Skip to content

Ship & operateEngineering handbook

Release timeline & known issues

5 min readUpdated Verified against d2f2e41 on 2026-09-27

Page actions

ChatGPT and Claude are third-party services. The link gives them this page's public address and a short instruction. This site records nothing.

The releases that explain today's invariants, in order, with what each one changed and the rule it left behind; then the items that are still open and who owns them.

CHANGELOG.md is the authoritative release history. This page keeps the releases that explain an invariant you will meet in the code, and the items that are still open. The 2026-06 static audit and live verification passes live under reports.

Timeline

ReleaseDateWhat changedThe invariant it left
Live verification2026-06-19Scripture integrity proven end to end: reconcile char-exact, golden all-pass, 1,430 Angs gap-free, 60,658 lines; footer/version bug fixed.The Ang 1256 “duplicate” is a legitimate refrain — never de-duplicate it.
v2.9.32026-06-19MANIFEST.json re-certified; version strings synced; build_db.py no longer hardcodes a version; rebuild_all.sh builds the analytics, vaar and semantic tables (validated by a full green rebuild, vaars=22); concept_lines(line_id) index fixes the Constellation hang.A rebuild populates every layer; large concepts need that index.
v2.9.42026-06-19Lineage redesign, plain-language Insights captions; line_neighbors rebuilt as exact sparse cosine (header-excluded, verbatim-twin de-duplicated, 0.30 floor, source='tfidf-exact-cosine-lite', scipy at build) with relatedness bands; db_sha256 re-certified.Neighbour scores are shown as bands, never a raw percentage. Scripture byte-identical.
v2.9.52026-06-19Insights accuracy from the audit: theme tags curated, akal_kaal split into akal + kaal (concepts 53 → 54), resonance refreshed, full-edge theme network (min-PPMI 0.7 by default), hardened neighbour matmul; PPMI/Jaccard recompute exact.54 concepts. Scripture byte-identical.
v2.10.02026-06-20Bundled Sant Lipi Gurmukhi webfont (SIL OFL 1.1, unicode-range-scoped) and the traditional saroop display toggle (saroop.ts), which collapses the doubled subjoined ya in rendered glyphs only.Display only: the corpus, DB, API, search and copy stay verbatim; the saroop markup never enters stored text or /api. Sant Lipi’s inline addha-yayya is a legitimate but different tradition from the printed Bir’s deep subscript; pending a scholar’s review.
v2.10.12026-06-20Saroop becomes the default rendering without writing localStorage; an explicit choice (sggs_saroop '0'/'1') is stored and respected.To change the default, flip let ON in saroop.ts.
v2.11.02026-06-26Apple-grade hardening: verify.py FTS tokens sanitised and quoted with a central empty-MATCH guard (a crafted quote/asterisk no longer 500s or leaks the exception type); min_ppmi clamped; nosniff, X-Frame-Options: DENY, Referrer-Policy: no-referrer on every response; lang="pa" on verse containers; pinch-zoom re-enabled; charts honour reduced motion; theme network gains a data-table alternative; styled 404.500s return a generic body. Security headers on every response.
v2.12.1 / iOS 1.1.12026-09-05Pre-TestFlight hardening.romannorm.py is the single Roman fold and must equal the pipeline’s (24,719 golden vectors); every integer query parameter goes through _int(); the Study-Trail pin reads verbatim text from data-gm, never rendered text (/api/lines?ids= repairs old pins); iOS sheetHosted gate, SwiftData ladder, SavedLineSchemaV1; an English-bundled iOS build needs LICENSED: true.
v1.0.02026-09-06Version strings reset to one unified baseline ahead of the first public release; no code, corpus or DB change.One version number across web, API and app (ADR-0004).
v1.1.0 – v1.1.52026-09comp_id groups a heading run with its composition (post-pass 1b); v1.1.4 demoted 233 verses mis-flagged as headings; CI-gated deploys; Soul Gold brand.No body line ever changes comp_id; deploys only through CI.
v1.3.82026-09-24Three repositories: data, platform, app (ADR-0007); the database arrives by pin (ADR-0008).dataset.lock.json is the only way a dataset changes here; the editorial ledger is 4 rules, 11 applications.
v1.3.92026-09-25Every bounded context runs as its own service on staging behind a gateway generated from the route table (ADR-0010); /api/v1/* with strict errors beside a byte-identical legacy /api/*; request ids; continuous production verification.Routing is generated, never hand-written; legacy /api/* stays byte-identical (the golden contract pins it).
v1.3.102026-09-25The API runs as Python functions inside the Vercel web project in production (ADR-0011), replayed against the golden contract before it goes live; the Render API keeps deploying as the rollback; this wiki launches at docs.gurbanisoul.com.The website and the API deploy — and roll back — together.
v1.4.02026-10-14The Knowledge Base is redressed (thirteen themes, a new shell) and gains the app’s Reader, Nitnem, Search and Raag Clock; the wiki gains its page menu, Markdown and PDF. The API is unchanged and production keeps the single all function.A web release ships first and the app follows as iOS 1.4.0 (1) from the tag; until that update is approved the site reports 1.4.0 and the App Store binary 1.3.10.

Still open

ItemStateOwner
Analytics-chart accessibility: the D3 charts are mouse-driven; the theme network has a data-table alternative, the others do not yetopenweb
One line with an empty translit_norm (id 35328, Ang 829)fixes on the next rebuild; tracked row by row in sggs-data’s data-quality baselinedata
21 source-faithful lines with a vowel sign that has no base consonant (Angs 214, 342, 695, 698, 699, 897, 1203, 1205)flagged for scholarly review; never silently changed (the Ang 1354/1358/1387 rows were resolved by the editorial corrections approved in the scholar review of 2026-09-24)scholar review
Eight web-only colour themes (review in docs/brand/web-themes.json) and the rule that Gurmukhi is ink in every theme: scholar reviewshipped in 1.4.0 labelled review; the review was waived for the release by the owner on 2026-10-13 and runs after itbrand
Five-person task check of the redressed Knowledge Basewaived for the 1.4.0 release by the owner on 2026-10-13; runs after itweb
The site reports 1.4.0 while the App Store binary is 1.3.10planned gap; closes when iOS 1.4.0 (1) is approved and releasedrelease
Japji author = null: author filters for Guru Nanak miss itknown, deferreddata
comp_type mislabelled in placessuppressed at the display layer; prefer comp_id/sectiondata

What each of these means for the text is on the editorial ledger page.

Closed since the last list: the traditional saroop rendering was accepted as the app’s default at the brand sensitivity gate on 2026-09-26. The deep-subscript ya that acceptance said would need another font was in Sant Lipi all along, as the yakash sign U+0A75: since 2026-10-16 the saroop draws it, matching the printed Bir, and goes back to the scholar with icon v2; Validation-Report.md is archived.