~bigbes/sr-ht-spec: c23aec57

feat: projects — a saved filter over one global index, not a container

A project is a named space set; querying one filters the single global
index. The meta-project is an implicit filter at a reserved address rather
than a row: a stored +everything would need a sync job on every space
creation, and its one failure mode is silently omitting a space.

SpaceFilter distinguishes All from an empty member list, because a freshly
created project has no members and must mean selects-nothing. Collapsing
the two would make every new project silently match the whole corpus.

bigbes <bigbes@gmail.com> — 2026-07-22 11:30:01 UTC

Commit c23aec5721cb37973196ce27765eb23fd57029e9view raw patch

Parent(s): 54fac8dd

13 changed file(s)

FileStatus+
core/errors.go M +6
core/names.go M +94
core/names_test.go M +120
db/project.go A +241
db/project_test.go A +279
db/store.go M +7 -3
db/unit_test.go M +44 -14
migrations/0002_project.sql A +19
schema.sql M +36 -5
service/doc.go M +14
service/project.go A +333
service/project_test.go A +317
service/service.go M +3