serve-before-dependencies (#141) and runtime-database-user (#23) move to
the archive, and their deltas are synced into openspec/specs. The two
Purpose edits a delta cannot make are made here: temporal-connection's
Purpose says start connects in the background and retries for the life
of the process, and error-pages' names the 503.
What the two investigations learned beyond each decision moves into the
docs:
- go-conventions.md: a new section on code that reaches a service that
answers after the listener opens (holders, per-request reads, the
refused write, retryloop, viper writes before the listener).
- production-deployment.md: what a liveness probe requests, and why it
must not wait on Temporal or the identity provider.
- building-an-integration.md: declared paths skip the session layer;
a completed workflow id runs again, and the guarded first update.
- models/payments-billing.md: invariant 14 states the 503 and
Discourse's failed rows; invariant 15 states the guarded update.
- operator-ux-conventions.md: an error answer carries no HX- header.
- database-management.md: why writers hold only the four DML
privileges, identity columns and sequences, the qualified SQL the
migration user runs, and sqlc alias lists for set-returning functions.
- database-locks.md: rule 9, a row lock on a table the writer cannot
update is taken in a SECURITY DEFINER function.
- testing.md: privilege tests drop to console_runtime, race-only breaks
as command records, the race run's -p 1, synctest for timer loops,
and test workers off the console's task queue.
Both archived design.md files gain the options weighed and the drafts
the approved copy replaced.
Add a goose migration to create core and fedwiki schemas and move
existing
domain tables using ALTER TABLE IF EXISTS. Set connection search_path to
"core, public" after successful DB ping. Update FedWiki SQL and
sqlc.yaml to
use fedwiki.sites and include db migrations for schema awareness. Add
design
docs, specs, and tasks for schema-namespacing and the migration plan.