feat(mcp): cross-meeting rollup tools (list_action_items / list_decisions / digest)#1324
Closed
r3dbars wants to merge 2 commits into
Closed
feat(mcp): cross-meeting rollup tools (list_action_items / list_decisions / digest)#1324r3dbars wants to merge 2 commits into
r3dbars wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ns/digest) Add three read-only MCP tools that aggregate the structured summary fields across meetings instead of one at a time (NEXT_WORK #4): - list_action_items — filter by owner (name-variant + substring), status (open default / done / all), free-text query, and date window - list_decisions — free-text query + date window - digest — every meeting in a window with its decisions/action items/open questions grouped, plus rolled-up counts Contributes the provisional summary-fact schema (action_items / decisions / open_questions, keyed to meeting id, with FTS), the write seam replaceSummaryFacts() that the summary-index PR's extractor will call, the query layer, the tool handlers, and tests (action items filtered by owner across 2+ meetings, status/date/FTS filters, decisions, digest rollup, write-seam idempotency, reindex clears stale facts). HARD DEPENDENCY: populating these tables is owned by the summary-index PR ("Moat #1: index summary fields"). Sequence #1 first, then rebase this. Until then the tables stay empty in production and the tools return a clear "not indexed yet" message. See docs/cross-meeting-tools.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Owner
Author
|
Closing as superseded by #1331, which merged the combined ask-meeting-history path covering this draft's scope. |
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.
What
Three new read-only
transcripted-mcptools that aggregate structured summary fields across meetings — NEXT_WORK item #4, the hero demo: "every open action item assigned to me, across every call." No cloud notetaker can do this on private local data.list_action_itemsowner(name-variant + substring),status(opendefault /done/all),query(FTS), date windowlist_decisionsquery(FTS), date windowdigestThis depends on the summary-index thread that adds the
decisions/action_items/open_questionstables and populates them by parsing meeting markdown. That PR must land first.This PR does not duplicate the extraction. It contributes:
IF NOT EXISTS, clearly flagged inTranscriptIndex.createTables()) so the tools compile/test in isolation.replaceSummaryFacts(filename:decisions:actionItems:openQuestions:)— the API Comprehensive Bug Fixes: State Machine, Error Handling, and Resilience #1's extractor calls during reconcile (tests seed through it).Until #1 lands, the tables stay empty in production and the tools return a clear "summaries have not been indexed yet" message rather than wrong data.
Merge-room: land #1, rebase this, reconcile the schema block in
TranscriptIndex.swift(keep one copy of each table; column contract isaction_items(filename,text,owner,status,due),decisions(filename,text),open_questions(filename,text)), and wire #1's extractor toreplaceSummaryFacts. Full notes:docs/cross-meeting-tools.md.Conflict note (recap-fix thread): changes to
ToolHandlers.swiftare append-only (3Toolentries, 3switchcases, 3 handlers);handleRecapuntouched. Small conflict surface.Tests
New
SummaryRollupTests.swift(11 cases): action items filtered by owner across 2 meetings, open/done/all status, date window, FTS query, decisions across meetings + FTS, digest rollup with counts, digest excludes fact-less meetings, write-seam idempotency, reindex clears stale facts.swift test --package-path Tools/TranscriptedMCP→ 85 passed, 0 failurestranscripted-mcp --self-test→ok: true(new schema opens cleanly)🤖 Generated with Claude Code