Releases
v1.0.0
Compare
Sorry, something went wrong.
No results found
[1.0.0] - 2026-10-30
Added
feat(brand) — the document description is a Brand field (#151 ) (#153 )
feat(home) — the AlignSynch build leads with the two questions (#143 ) (#150 )
feat(brand) — palette and mark sampled from the AlignSynch logo (#136 ) (#142 )
feat(media) — category tiles generated from the slug; delete the 23 duplicates (#130 ) (#137 )
feat(assessment) — render the answered Avery/Rowan instance at /assessment/[slug] (#134 )
feat(data) — assessment templates for three Relationship Types and four instances (#131 ) (#133 )
feat(content) — one record type, two templates — a quiz and an assessment (#128 ) (#129 )
feat(brand) — a second brand record, and one build flag that selects it (#127 )
feat(brand) — every QuizHub literal reads the brand record (#126 )
feat(brand) — data/brand.ts — the record the reskin reads (#125 )
feat(tournaments) — tournament copy comes from PageCopy, and the domain stays out (#58 ) (#89 )
feat(pages) — marketing copy out of JSX into PageCopy (#56 ) (#94 )
feat(battle) — modes and daily-challenge rewards are records, and the copy moves to PageCopy (#57 ) (#92 )
feat(copy) — shell, auth and 404 copy comes from PageCopy (#54 ) (#96 )
feat(copy) — categories and explore copy come from PageCopy fixtures (WU-8, #55 ) (#88 )
feat(taxonomy) — labels come from the schema, and data:check E20 enforces it (#50 ) (#73 )
feat(leaderboard) — one people fixture instead of six islands of their own records (#48 ) (#77 )
feat(quiz) — a record's detail page renders its own leaderboard and reviews (WU-2 follow-up, #75 ) (#83 )
feat — fixture generator (npm run gen) (#71 )
feat(home) — PageCopy fixture + E23 copy ratchet, home copy out of JSX (#53 ) (#79 )
feat(quiz) — the quiz surface reads the fixture, not a per-page mock (WU-2, #51 ) (#76 )
feat — typed media registry (#65 )
feat(data) — author the two Science overlays + E14/E15/E16/W6 promotion checks (B-01) (#39 )
feat(data) — port the 42-record migrated quiz collection into data/ (B-01 prerequisite) (#26 )
feat(content) — zQuizPromotion — per-slot campaign overlay merged in selectQuizCard (B-01) (#21 )
Fixed
fix(play) — /quiz//play plays the quiz the URL names (#132 ) (#135 )
fix(data) — published quizzes carry questions, a date and a reward window (#124 )
fix(profile) — /profile/ resolves the handle from data/players.ts (#111 ) (#123 )
fix(copy) — QuizHub everywhere the copy renders, and no stray space after it (#122 )
fix(routes) — unknown ids 404 on /categories, /news and /tournaments (#112 ) (#116 )
fix(promotions) — anchor the campaign window to the fixture clock (#110 ) (#121 )
fix(metadata) — real document title on every route (#113 ) (#115 )
fix(shell) — mobile sidebar is CSS-closed below xl, drawer is its own state (#109 ) (#119 )
fix(ci) — fetch origin/main so the lane classifier actually runs in CI (#114 )
fix(data-check) — one code, one rule — E17 is the media registry, the slot guard is E28 (#103 ) (#105 )
fix(images) — the five next/image size bugs, and a gate for the rule (#99 )
fix(p3) — gen emits quizzes only, and data:check says why (E17/E26) (#100 )
fix(chat) — format fixture times against one clock, not the wall clock (#23 )
fix(content) — point the 11 baselined asset refs at files that exist (#28 )
fix(qa) — the pre-existing 404s and the Next 16 sync params (closes #20 ) (#25 )
fix(seo) — generate real metadata for /categories/[slug] (D14) (#17 )
Maintenance
docs — add the AlignSynch glossary v2 as a reference PDF (#149 )
docs(glossary) — the glossary page is generated from the schema comments (#138 ) (#141 )
chore(issues) — three issue templates — feature, bug, new template type (#139 ) (#140 )
docs(lanes) — CI's win is the check's wall time, not contention (#120 )
docs(gate) — CI classifies now — record the measured lanes (#118 )
docs(qa) — P4 dogfood pass — every route, defects 1-5 with evidence (#108 )
docs(p3) — exit record with reproducible evidence (#107 )
docs(data-model) — tournaments are PageCopy-only and out of scope (#58 ) (#106 )
test(vitest) — adopt Vitest and the first app-side units, wired into the one gate (#8 ) (#98 )
docs(p1) — refresh ENV-SPEC §5 evidence and record what B-01 actually landed (#43 ) (#97 )
docs(p2) — the inventory says WU-7, WU-8 and WU-9 landed (#54 /#55 /#56 ) (#102 )
docs(p2) — the inventory says WU-10 landed, not that it is next (#57 ) (#101 )
chore(git) — ignore .worktrees/ (#93 )
docs(readme) — setup, prerequisites, the gate, the four layers and current phase (#7 ) (#95 )
docs(p1) — keep images.unoptimized and record why (#6 ) (#91 )
docs — lib/quizhub is vendored and ignored, not generated (#90 )
build(pnpm) — pin the package manager to 12.16.1 in package.json (#4 ) (#87 )
docs(orchestration) — the orchestrator's behavioural contract (#86 )
docs(p2) — the ranked list records WU-1, WU-2 and WU-4 as landed (#85 )
docs(p2) — record WU-5 as landed and E20's DUP tier at 0 (#84 )
ci(gate) — lanes — depth follows the diff, next build capped at 2 slots (#82 )
P2 WU-4 · invented metrics → computed analytics (#49 ) (#80 )
refactor(search) — derive the search index, bind chat to its fixture (WU-3, #52 ) (#72 )
docs(p2) — record WU-12's deletion in the inventory, not its dead paths (#74 )
docs(agents) — rejoin the CI sentence the #33 resolution split (#69 )
P3: pass the slot campaign into the card projections (shelves + detail-page prize) (#41 )
chore(components) — delete 14 components no route imports (#47 ) (#66 )
ci — one gate script, one caller in CI, one pre-push hook (ORD 0) (#33 )
docs — P2 literal-string and media inventory (#59 )
docs(mimo) — MiMo harness guide + reproducible probe suite (#38 )
ci — trigger on merge_group so the merge queue can report the required check (#44 )
docs — data model design page (ORD 2) (#45 )
chore(deps) — pin the 13 "latest" specs to their locked versions (#14 )
docs(ops) — voice memo → issue → card loop, and where Xiaomi stops (#32 ) (#34 )
docs(p1) — record the promotion rules, the W4 code collision and the shelf gap (B-01) (#40 )
P1: render every card grid from the quiz model (D2 remainder) (#24 )
docs — verify the command table, record P1 gates, fix the dev-only image crash (#18 )
ci — enforce data:check in the gate (#36 )
P1: zod content model as the single source of truth (closes #10 ) (#16 )
chore(format) — gate formatting in lint and CI
style — reformat the repo at lineWidth 100 with Biome
Toolchain: Biome + typecheck + CI (closes #2 , #3 ) (#12 )
Initial commit
Known limits
No authentication and no database. Every route reads the TypeScript fixtures in data/ that are compiled into the build. /login and /register are screens, not a session: the sign-in button routes to /, and there is no app/api, no server action and no database dependency anywhere in the tree.
No create, invite or answer flow. Nothing a visitor does is stored — the quiz editor's save is a toast. The alignment screen /assessment/[slug] is a read of a seeded fixture, prerendered at build time.
The four templates and four seeded instances exist in data; none of them can be started or answered. All four instances have a read-only screen at /assessment/[slug] (avery-rowan, ruth-sam, marco-priya, noor-iris), and the AlignSynch front page links three of them. There is no invite, no second party, and no way to copy a template into a new Relationship.
You can’t perform that action at this time.