79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
---
|
||
id: release-n1-growth-posture
|
||
name: N-1 growth-posture review — conscious acceptance (or hygiene)
|
||
status: pending
|
||
depends_on: []
|
||
scope: narrow
|
||
risk: low
|
||
impact: component
|
||
level: implementation
|
||
tags: [wave-8, sqlite-engine, docs]
|
||
---
|
||
|
||
## Description
|
||
|
||
Review 001's N-1 (deferred by design to the release pass): three
|
||
engine-layer table families grow without internal hygiene caps, and
|
||
the release review must **consciously accept them or add engine-side
|
||
hygiene** (`docs/reviews/001-waves-1-2-general-review.md` §N-1, §7's
|
||
wave-6 release-review bullet):
|
||
|
||
1. `__alkstore_dead` with `dead_letter_retention_s = NULL` (the
|
||
default — the doc text is honest that retention is opt-in)
|
||
2. `__alkstore_notifications` rows pruned only at attach (D-16's 10k
|
||
cap triggers only next attach — an idle-but-listening process
|
||
never prunes)
|
||
3. `__alkstore_stream` (growth is the contract's durable-log posture;
|
||
`trim_to` is consumer-invoked per ADR-015)
|
||
|
||
None is wrong for v1; all three are documented engine-internal. The
|
||
expected disposition is conscious acceptance with the documentation
|
||
sharpened — review 001 specifically suggested the notify one "may want
|
||
an 'attach is not the only prune site' note in the sqlite engine's
|
||
docs (cadence recipes)". But the acceptance must be a *decision made
|
||
this session against the implemented engines* (the review predates
|
||
waves 3–7): re-read the three growth paths as implemented, confirm the
|
||
review's characterization still holds (the mem engine's postures are
|
||
new since — its notify/stream growth is process-lifetime-bounded by
|
||
design; say so in the record), and land the acceptance:
|
||
|
||
- The acceptance record (all three paths, per engine, with the
|
||
rationale) — `deployment.md`'s durability/growth posture is the
|
||
natural home; coordinate with `release-deployment-matrix` (this
|
||
task's outcome is an input to that pass — land the substance here,
|
||
let the matrix pass fold it into the final text).
|
||
- The notify prune-cadence note in `engine-sqlite.md` (or wherever the
|
||
engine spec's cadence guidance lives) if accepted.
|
||
- If any path instead warrants engine-side hygiene (a cap, a sweep
|
||
integration), that is a scope change — raise with the user before
|
||
building; the default is acceptance.
|
||
|
||
## Acceptance Criteria
|
||
|
||
- [ ] The three growth paths re-read as implemented (SQLite + pg +
|
||
mem); the review's characterization confirmed or corrected in
|
||
the record
|
||
- [ ] The conscious-acceptance decision recorded per engine (or a
|
||
user-approved hygiene scope change, which would be a follow-up
|
||
task)
|
||
- [ ] The notify prune-cadence note landed in the SQLite engine's docs
|
||
- [ ] The acceptance substance positioned for the deployment-matrix
|
||
final pass to fold in
|
||
- [ ] Workspace gates green (docs-only expected)
|
||
|
||
## References
|
||
|
||
- docs/reviews/001-waves-1-2-general-review.md §N-1, §7
|
||
- docs/architecture/deployment.md (Durability knobs; the matrix this
|
||
feeds)
|
||
- docs/architecture/engine-sqlite.md (the cadence-recipes home)
|
||
- docs/architecture/decisions/024-mem-engine.md (the mem postures new
|
||
since the review)
|
||
|
||
## Notes
|
||
|
||
> To be filled by implementation agent
|
||
|
||
## Summary
|
||
|
||
> To be filled on completion |