Update schema.allium: mcp_proposals, chat surface state, publish_jobs #94

Closed
opened 2026-07-20 19:44:04 +00:00 by hugo · 1 comment
Owner

Source: Audit section 4 (spec behind code/bDS2).

Gaps in specs/schema.allium:

  1. mcp_proposals — exists in RuDS (crates/bds-core/migrations/2026-07-19-123029-0000_add_mcp_proposals/up.sql: kinds draft_post/propose_script/propose_template/propose_media_translation/propose_media_metadata/propose_post_metadata; statuses pending/executing/accepted/rejected/expired; data/result/expires_at/resolved_at) and in bDS2 (migration 20260424100817). Spec has proposal RULES in mcp.allium but no persistence entity.
  2. Chat surface state — both apps added it (RuDS migration 20260719163000_add_chat_surface_state, bDS2 20260527175452_add_chat_conversation_surface_state); ChatConversation entity in schema.allium doesn't mention it.
  3. publish_jobs — bDS2-only table (migration 20260424100817); schema.allium omits it. Coordinate with the "Persist publish jobs" issue: document it as either planned or an intentional divergence.

Task: Add/extend the entities + record surfaces in specs/schema.allium to match the real DDL (sqlite semantics), including the mcp_proposals unique-index invariant (see companion index issue). Keep the MigrationVersion comment current. Validate with the installed allium CLI (allium check). Ensure invariants gained here are covered by unit tests per AGENTS.md (e.g. proposal status CHECK constraints round-trip).

Acceptance: allium check passes; schema.allium matches both codebases' DDL; divergences explicitly annotated.

**Source:** Audit section 4 (spec behind code/bDS2). **Gaps in `specs/schema.allium`:** 1. `mcp_proposals` — exists in RuDS (`crates/bds-core/migrations/2026-07-19-123029-0000_add_mcp_proposals/up.sql`: kinds draft_post/propose_script/propose_template/propose_media_translation/propose_media_metadata/propose_post_metadata; statuses pending/executing/accepted/rejected/expired; data/result/expires_at/resolved_at) and in bDS2 (migration 20260424100817). Spec has proposal RULES in mcp.allium but no persistence entity. 2. Chat surface state — both apps added it (RuDS migration `20260719163000_add_chat_surface_state`, bDS2 `20260527175452_add_chat_conversation_surface_state`); ChatConversation entity in schema.allium doesn't mention it. 3. `publish_jobs` — bDS2-only table (migration 20260424100817); schema.allium omits it. Coordinate with the "Persist publish jobs" issue: document it as either planned or an intentional divergence. **Task:** Add/extend the entities + record surfaces in `specs/schema.allium` to match the real DDL (sqlite semantics), including the mcp_proposals unique-index invariant (see companion index issue). Keep the MigrationVersion comment current. Validate with the installed `allium` CLI (`allium check`). Ensure invariants gained here are covered by unit tests per AGENTS.md (e.g. proposal status CHECK constraints round-trip). **Acceptance:** `allium check` passes; schema.allium matches both codebases' DDL; divergences explicitly annotated.
hugo added the enhancement label 2026-07-20 19:44:04 +00:00
Author
Owner

Implemented in fc039d8. Updated schema.allium from the current RuDS Diesel and bDS2 Ecto migrations: added all MCP proposal kinds/statuses and the complete RuDS persistence record, chat conversation surface_state, both record-surface exposures, the kind/entity/status SQLite uniqueness invariant, and the current migration version. Documented bDS2's smaller MCP row shape and the maintainer-approved #86 decision that publish_jobs remain an intentional bDS2-only persistence divergence. Added migration coverage proving every persisted proposal enum value round-trips and SQLite rejects invalid kinds/statuses; existing tests cover chat-state migration preservation and proposal uniqueness. Neutral Allium/code/bDS2 review found no remaining issue-scope drift. Verified with allium check/analyse, cargo test --workspace, cargo build --workspace, strict Clippy, cargo fmt --check, and cargo machete.

Implemented in fc039d8. Updated schema.allium from the current RuDS Diesel and bDS2 Ecto migrations: added all MCP proposal kinds/statuses and the complete RuDS persistence record, chat conversation surface_state, both record-surface exposures, the kind/entity/status SQLite uniqueness invariant, and the current migration version. Documented bDS2's smaller MCP row shape and the maintainer-approved #86 decision that publish_jobs remain an intentional bDS2-only persistence divergence. Added migration coverage proving every persisted proposal enum value round-trips and SQLite rejects invalid kinds/statuses; existing tests cover chat-state migration preservation and proposal uniqueness. Neutral Allium/code/bDS2 review found no remaining issue-scope drift. Verified with allium check/analyse, cargo test --workspace, cargo build --workspace, strict Clippy, cargo fmt --check, and cargo machete.
hugo closed this issue 2026-07-22 17:18:19 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hugo/RuDS#94