MCP/CLI parity: list a project's docs + document set-projects (+ doc sweep)#86
Merged
Conversation
…nt set-projects`
Close two CLI<->MCP parity gaps surfaced while building a CLI<->MCP parity matrix.
- cerefox_metadata_search now accepts an OPTIONAL metadata_filter: supply
project_name (and/or a time range) alone to list documents by scope. At least
one of metadata_filter / project_name / updated_since / created_since is still
required, so it never becomes an unbounded whole-KB dump. No RPC/schema change
(the RPC's `metadata @> '{}'` already match-alls); the cerefox-metadata-search
Edge Function and the GPT Actions OpenAPI block (info.version -> 1.9.0) were
relaxed in lockstep.
- New `cerefox document set-projects <id> [names...]` (with --clear) — the CLI
equivalent of the cerefox_set_document_projects MCP tool. Both now share a
replaceDocumentProjects core in _shared/mcp-tools/_projects.ts so they can't
drift.
Docs: new CLI<->MCP parity matrix + command reference in cli.md; AGENT_GUIDE and
AGENT_QUICK_REFERENCE updated (get_help bundle regenerated); connect-agents
mapping + OpenAPI; CHANGELOG; plan.md Current Focus refreshed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Audited all repo docs after the v0.10.x cycle. Genuine staleness fixed: - requirements-and-specs: CEREFOX_SMALL_TO_BIG_THRESHOLD default 40000 -> 20000 (matches rpcs.sql + solution-design); FR-1.4 DOCX is SUPPORTED (beta, via mammoth), not "dropped in v0.7". - solution-design: `cerefox version list` -> `cerefox document version list`. - access-paths: drop "Python" from the soft-delete access cell (Python is a frozen husk, not a live write path). - agent-coordination: `update_if_exists` REPLACES in place (not "appends") — reworded so agents don't expect auto-append. - CONTRIBUTING + CLAUDE.md: CLI subcommand-file count 28 -> 35. - README: analytics dashboard 7 -> 8 interactive charts. - cli-web-parity-audit: add a historical-snapshot banner (its deferred gaps — document edit/restore, project create/edit — have since shipped). - frontend/README: replace the stock Vite template with a Cerefox-specific one. Research/spec docs were treated as point-in-time records and left as-is. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nly) Version-retention protection (`document version archive` / `unarchive`) is deliberately exposed only to the CLI and web UI — a maintenance concern, not an agent primitive. Reclassify it in the CLI<->MCP parity matrix from a⚠️ gap to a 🔒 intentional non-gap (matrix row + gap-status summary). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes two CLI↔MCP parity gaps, plus a documentation accuracy sweep.
1. List a project's documents over MCP —
cerefox_metadata_search'smetadata_filteris now optional. Passproject_name(and/orupdated_since/created_since) alone to list documents by scope (newest-updated first). At least one ofmetadata_filter/project_name/updated_since/created_sinceis still required, so it never becomes an unbounded whole-KB dump.metadata @> '{}'already matches all rows; only the client-side guards blocked an empty filter. Thecerefox-metadata-searchEdge Function and the GPT Actions OpenAPI block (info.version→ 1.9.0) were relaxed in lockstep. Backward compatible (existing non-empty-filter callers unaffected).2.
cerefox document set-projects <id> [names…](with--clear) — the CLI equivalent of thecerefox_set_document_projectsMCP tool (previously MCP-only). Both now share areplaceDocumentProjectscore in_shared/mcp-tools/_projects.ts, so they can't drift.3. Docs — a new CLI↔MCP parity matrix + command reference in
cli.md;AGENT_GUIDE/AGENT_QUICK_REFERENCEupdated (cerefox_get_helpbundle regenerated);connect-agentsmapping + OpenAPI;CHANGELOG;plan.mdCurrent Focus refreshed (Iteration 30 marked done; 29/31 tracked).4. Accuracy sweep (separate commit) — audited all repo docs and fixed genuine staleness: small-to-big threshold default (40000→20000), DOCX "dropped" → supported,
cerefox version list→document version list, "Python" dropped from a soft-delete access cell,update_if_exists"append" wording, subcommand count 28→35, analytics 7→8 charts, a historical banner oncli-web-parity-audit.md, and a realfrontend/README.md.Test plan
_sharedunit tests: 209 pass (metadata-search refactor + new positive/negative cases; set-projects validation intact)_sharedtypecheck clean (bun run typecheck)packages/memorybuildscerefox document set-projects --helprenders; validation guards exit 1 (no-args / name+--clearconflict)cerefox_get_helpbundle in sync (check_help_bundle.ts)cerefox server deploy --functions-only) so the cloud accepts the optional filter (EF code changed; no schema bump)🤖 Generated with Claude Code