feat: community module — CommunityDB, CommunityPost, SharedStore (MIT) #46
Labels
No labels
architecture
backlog
enhancement
module:documents
module:hardware
module:manage
module:pipeline
module:voice
priority:backlog
priority:high
priority:medium
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/circuitforge-core#46
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Summary
Add a
communitymodule to circuitforge-core providing the shared PostgreSQL connection pool, migration runner, and base data models consumed by Kiwi, Snipe, and Peregrine.Implementation plan:
circuitforge-plans/circuitforge-core/superpowers/plans/2026-04-12-community-module.mdFiles
circuitforge_core/community/__init__.pycircuitforge_core/community/db.py—CommunityDB(psycopg2 pool + migration runner)circuitforge_core/community/models.py—CommunityPostfrozen dataclass (full element snapshot schema)circuitforge_core/community/store.py—SharedStorebase class (typed pg read/write)circuitforge_core/community/migrations/001_community_posts.sqlcircuitforge_core/community/migrations/002_community_post_reactions.sql(stub)tests/community/— full test coverageBSL boundary
All code in this issue is MIT.
CommunitySignal(BSL 1.1) is explicitly excluded — it lives in cf-orch (see circuitforge-orch#35).Dependencies
None. This is the foundation — cf-orch and kiwi community features depend on this.
Version bump
v0.9.x→v0.10.0(new module)Dependency: psycopg2 (not psycopg2-binary)
Add
psycopg2>=2.9topyproject.toml.