Merge branch 'worktree-tensorx-provider' into main
🤖 merge: slice 1 — the sibling contract, §4.1's ruling on every search, and gate 8 Discussion 3. Thirteen commits, three independent reviews, every gate mutation-tested with survivors chased rather than argued away. Two spec amendments where §8.1 disagreed with itself: the breaker's window is a UTC day (day-keyed counters cannot answer a rolling question), and its NOT_VISIBLE clause binds each counted asker rather than the window — §13 already had that fix and §8.1 was amended without opening it. Three rendering bugs found that predate this work: rst-callout, rst-btn and rst-cell-mut all spelled outside the design system's vocabulary. The first is fixed with a gate; the other two are listed by name and left for Paul, because which variant a button should be is a visual decision. Blocked and recorded in §13: post-restore reconciliation, S1a's re-announce and gate 27 all need AHEAD in the contract module.
50 files changed,
+7793
−108
AGENTS.md+115 −4cmd/memoria/main.go+21 −0docs/superpowers/specs/2026-09-03-memoria-design.md+51 −1internal/memoria/app.go+41 −1internal/memoria/breaker.go+503 −0internal/memoria/breaker_test.go+754 −0internal/memoria/breaker_wiring_test.go+369 −0internal/memoria/config_siblings.go+173 −0internal/memoria/config_siblings_test.go+260 −0internal/memoria/custody.go+220 −0internal/memoria/custody_test.go+577 −0internal/memoria/delete_test.go+4 −4internal/memoria/gorm.go+7 −0internal/memoria/handlers.go+34 −3internal/memoria/handlers_connector.go+9 −0internal/memoria/handlers_sources.go+146 −0internal/memoria/migrations/0005_alter_documents.sql+4 −0internal/memoria/migrations/0006_create_sibling_feeds.sql+4 −0internal/memoria/migrations/0007_alter_sibling_feeds.sql+8 −0internal/memoria/migrations/schema.sql+11 −1internal/memoria/models.go+142 −3internal/memoria/render.go+37 −0internal/memoria/render_test.go+73 −0internal/memoria/seal/seal.go+48 −0internal/memoria/searchhelper_test.go+28 −0internal/memoria/sibling/feed.go+165 −0internal/memoria/sibling/feed_test.go+397 −0internal/memoria/sibling/page.go+157 −0internal/memoria/sibling/page_test.go+467 −0internal/memoria/sibling/policy.go+235 −0internal/memoria/sibling/policy_test.go+254 −0internal/memoria/sibling/sibling.go+27 −28internal/memoria/sibling/sibling_test.go+28 −12internal/memoria/siblingsync.go+326 −0internal/memoria/siblingsync_test.go+878 −0internal/memoria/store.go+279 −24internal/memoria/templates/connectors.html+41 −0internal/memoria/templates/index.html+1 −1internal/memoria/templates/notion.html+2 −2internal/memoria/templates/results.html+26 −3internal/memoria/templates/signin.html+1 −1internal/memoria/warmup_test.go+392 −0internal/memoriatest/ancestry_test.go+5 −5internal/memoriatest/connector_test.go+9 −9internal/memoriatest/gates_test.go+361 −2internal/memoriatest/regress_test.go+1 −1internal/memoriatest/search_test.go+15 −2internal/memoriatest/searchhelper_test.go+30 −0tools/drive/main.go+56 −0tools/seed/main.go+1 −1
AGENTS.mdLoading diff…
cmd/memoria/main.goLoading diff…
docs/superpowers/specs/2026-09-03-memoria-design.mdLoading diff…
internal/memoria/app.goLoading diff…
internal/memoria/breaker.goLoading diff…
internal/memoria/breaker_test.goLoading diff…
internal/memoria/breaker_wiring_test.goLoading diff…
internal/memoria/config_siblings.goLoading diff…
internal/memoria/config_siblings_test.goLoading diff…
internal/memoria/custody.goLoading diff…
internal/memoria/custody_test.goLoading diff…
internal/memoria/delete_test.goLoading diff…
internal/memoria/gorm.goLoading diff…
internal/memoria/handlers.goLoading diff…
internal/memoria/handlers_connector.goLoading diff…
internal/memoria/handlers_sources.goLoading diff…
internal/memoria/migrations/0005_alter_documents.sqlLoading diff…
internal/memoria/migrations/0006_create_sibling_feeds.sqlLoading diff…
internal/memoria/migrations/0007_alter_sibling_feeds.sqlLoading diff…
internal/memoria/migrations/schema.sqlLoading diff…
internal/memoria/models.goLoading diff…
internal/memoria/render.goLoading diff…
internal/memoria/render_test.goLoading diff…
internal/memoria/seal/seal.goLoading diff…
internal/memoria/searchhelper_test.goLoading diff…
internal/memoria/sibling/feed.goLoading diff…
internal/memoria/sibling/feed_test.goLoading diff…
internal/memoria/sibling/page.goLoading diff…
internal/memoria/sibling/page_test.goLoading diff…
internal/memoria/sibling/policy.goLoading diff…
internal/memoria/sibling/policy_test.goLoading diff…
internal/memoria/sibling/sibling.goLoading diff…
internal/memoria/sibling/sibling_test.goLoading diff…
internal/memoria/siblingsync.goLoading diff…
internal/memoria/siblingsync_test.goLoading diff…
internal/memoria/store.goLoading diff…
internal/memoria/templates/connectors.htmlLoading diff…
internal/memoria/templates/index.htmlLoading diff…
internal/memoria/templates/notion.htmlLoading diff…
internal/memoria/templates/results.htmlLoading diff…
internal/memoria/templates/signin.htmlLoading diff…
internal/memoria/warmup_test.goLoading diff…
internal/memoriatest/ancestry_test.goLoading diff…
internal/memoriatest/connector_test.goLoading diff…
internal/memoriatest/gates_test.goLoading diff…
internal/memoriatest/regress_test.goLoading diff…
internal/memoriatest/search_test.goLoading diff…
internal/memoriatest/searchhelper_test.goLoading diff…
tools/drive/main.goLoading diff…
tools/seed/main.goLoading diff…