Repository navigation
v2.0.0: SQLite Registry, MCP Server, Full CLI Parity
Crier v2.0.0
Major rewrite: SQLite registry, MCP server with 17 tools, content hash removal.
Breaking Changes
- Registry is now SQLite at
~/.config/crier/crier.db(was YAML at<site_root>/.crier/registry.yaml) - Content hashing removed (no change detection, no
--include-changed) - Primary key is slug derived from title (was
canonical_url) save_registry()removed (was no-op)get_content_hash(),get_file_content_hash(),has_content_changed()removed
New Features
- MCP server (
crier mcp) with 17 tools for full CLI parity- Registry: query, missing, article, publications, record, failures, summary, sql
- Content: search, check
- Actions: publish (two-step confirmation), delete (two-step), archive
- Platform: list_remote, doctor, stats, stats_refresh
- 3 MCP resources:
crier://schema,crier://config,crier://platforms - Confirmation tokens for destructive operations (publish, delete)
--date-sourceflag for audit/search (frontmatter or mtime)- YAML to SQLite migration via
migrate_yaml_to_sqlite()
Improvements
is_short_form_platform()derives fromPlatform.is_short_formclass attribute (no hardcoded set)- Mastodon/Bluesky
list_articlesreturns full titles (was truncated to 50 chars) - All registry functions accept slug or canonical_url via
_resolve_slug() - UPSERT instead of INSERT OR REPLACE (preserves stats, deletion state)
- Canonical URL inference resolves content paths against
site_root(not CWD) crier initcreates SQLite DB (was creating obsolete YAML)- Stats fetching fixed (
get_platform(name)(api_key)was wrong arg count) crier_sqlwrapped in SAVEPOINT/ROLLBACK to prevent writes
Plugin (queelius-plugins marketplace)
- SKILL.md simplified to ~90 lines (rewrite guidelines, platform voice)
- New auditor agent for gap analysis, performance review, failure triage
- Cross-poster agent updated for MCP-native workflow
- MCP server config at
.mcp.json
Stats
- 1204 tests passing
- 26 articles tracked, 77 publications across 4 platforms