feat: content module, local-first state, and vendored calendar #62
No reviewers
Labels
No labels
area: arcade
area: art-studio
area: calendar
area: chapel
area: content
area: design
area: field-guide
area: infra
area: library
area: os
area: portal
area: sync
area: typing
blocked
breaking
bug
content: approved
content: changes-requested
content: drafting
content: needs-doctrinal-review
content: needs-review
dependencies
documentation
duplicate
enhancement
epic
github_actions
good first issue
help wanted
invalid
javascript
needs-triage
priority: high
priority: low
priority: medium
question
type: enhancement
type: feature
type: fix
type: perf
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Bosco/bosco!62
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/content-state-calendar"
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?
What & why
Completes v0.1.0 Core — the flagship invariants proven on real code.
Content module (
src/lib/content)index.md+tier-1/2/3.md).approvedtopics are never written into the bundle — metadata and tier bodies alike. Pending doctrine is excluded, not merely hidden.pendingwith a sentinel) + a minimal/librarylisting prove it.pnpm guard:content(a CI step) asserts exclusion in the realbuild/; a preview build (CONTENT_PREVIEW=1) includes it.Local-first, sync-ready state (
src/lib/state)$lib/stateboundary: profiles, prefs (localStorage), collections (IndexedDB), a versioned migration runner, timestamp change-tracking, export/import backup, and aSyncAdapterseam (defaultNoopSyncAdapter). Opt-in parent-gated sync (v1.1.0) attaches here with no feature change.fake-indexeddb.Vendored calendar (
src/lib/calendar,scripts/calendar)calendar.jsonprojected from introibo Core's publiccontract()(CC0 corpus), generated out-of-band (PHP via WSL) — CI needs no PHP, just reads the committed file.Offline + docs
pnpm guard:offline, a CI step) + a Playwright e2e harness (local/pre-release).Verified locally:
pnpm check(0/0),lint,build,guard:external,guard:content,guard:offline, and 31 unit tests all green.Release-As: 0.1.0