Skip to content

[feature] settings: auto-analyze toggle so an external AI can own recording analysis - #230

Merged
YJack0000 merged 1 commit into
mainfrom
feat/auto-analyze-toggle
Aug 14, 2026
Merged

YJack0000 merged 1 commit into
mainfrom
feat/auto-analyze-toggle

Conversation

@YJack0000

Copy link
Copy Markdown
Contributor

What this changes

Adds Settings.autoStudyAnalysis (default true — existing behavior unchanged). When switched off:

  • the study pipeline dispatches nothing, so an imported or finished recording stays unanalyzed and an external AI can claim it over MCP (list_recordings' analyzed flag) and write results back with set_recording_analysis;
  • the ingest wizard skips its Confirm-time analysis pass for the same reason (landing transcript-only, same as the no-API-key path);
  • artifact sections read "idle" rather than queuing forever against a pipeline that will never run.

Manual regeneration still works either way: regenerateArtifact / reanalyzeAll pin store.studyManualForId to the loaded replay id, which factsOf ORs into StudyPipelineFacts.autoAnalyze. So one recording can be analyzed on demand while the switch stays off. The pin is compared by id, so loading a different recording drops it — no reset path has to remember it.

The toggle sits in the MCP settings panel, since turning it off is exactly what hands analysis to the MCP client configured on that page.

Why

Follow-up to #229, which added the MCP write-back surface (update_recording_meta, set_recording_analysis). With that in place the remaining friction is that every recording still gets a built-in pass first, which an external analyst then has to overwrite — wasted model spend, and a window where the saved analysis is the one nobody wants. This makes "external AI owns the analysis" a real mode instead of a race.

Note: StudyPipelineFacts.autoAnalyze is unrelated to the store's live-mode autoAnalyze re-analysis timer; the JSDoc calls that out.

How it was verified

  • bunx tsc --noEmit passes
  • bunx vitest run passes (332 tests; studyPipeline.test.ts 14 → 16)
  • cargo check clean (Rust untouched)
  • Added or updated tests — evaluateStages returns nothing when auto is off even with every prerequisite met, and is unchanged when on
  • Added new user-facing strings to both zh-TW and en in src/i18n/messages.ts
  • Ran the app (bun run tauri dev) and exercised the change — verified on the release build after merge

…ording analysis

Settings.autoStudyAnalysis (default true — existing behavior is unchanged,
and old persisted states fall back to true through the settings merge).

Off, the study pipeline dispatches nothing: an imported or finished recording
stays UNANALYZED so an external AI can claim it over MCP (list_recordings'
`analyzed` flag) and write the analysis back with set_recording_analysis.
The ingest wizard skips its Confirm-time pass for the same reason.

Manual regeneration still works either way: regenerateArtifact and
reanalyzeAll pin store.studyManualForId to the loaded replay id, which the
pipeline ORs into StudyPipelineFacts.autoAnalyze — so one recording can be
analyzed on demand while the switch stays off. The pin is compared by id, so
loading another recording drops it without any reset path.

Display follows the same fact: with auto off, untouched artifacts read "idle"
instead of queuing forever against a pipeline that will never run.
@YJack0000
YJack0000 merged commit 5544c3f into main Aug 14, 2026
@YJack0000
YJack0000 deleted the feat/auto-analyze-toggle branch August 14, 2026 09:34
@sonarqubecloud

Copy link
Copy Markdown

YJack0000 added a commit that referenced this pull request Aug 17, 2026
The site and the README were still selling three subsystems that shipped
their last release weeks ago — the live intelligence board, the accounts
mini-CRM, and live voice translation — while the thing that actually grew,
the MCP server, got one code block and three bullet points.

Both are rewritten around where the app converged in v0.22.14–v0.22.18:
record, transcribe, analyze, search, and an MCP surface wide enough that an
external agent can own the library, including the analysis.

website/index.html
- Hero, metadata, OG/Twitter cards and JSON-LD rewritten around the record +
  MCP story instead of real-time coaching. Pre-flight is gone from the
  workflow steps; meeting context replaces the meeting-type picker.
- The MCP section grows from one code block to all 48 tools in five groups,
  each name checked against src-tauri/src/mcp.rs, plus the auto-analyze-off
  handover flow that #230 and #229 built.
- The iPhone section gets the real App Store link (id6795031201). Android is
  described honestly as built and syncing but not on Play yet.
- Footer regrouped into Product / Project / Legal & support; account deletion
  moves out of the top-level nav into Legal (the /account-deletion/ URL is
  unchanged — Play requires it to stay reachable).
- Pathors is de-emphasised: the nav link and the "A Pathors AI open source
  project" line are gone, the JSON-LD Organization graph collapses to a single
  author field, and the open-source section explains the origin without
  leaning on the brand.

website/{privacy,support,account-deletion}
- English-only, per the repository convention. lang was zh-Hant with an
  "English summary" appended; now there is one language and no duplication.
- Support gains three desktop entries that did not exist before: a failed
  system-audio tap, an MCP client that cannot connect, and analysis not
  running because auto-analyze is off.

README.md
- Drops the live-translation section, the Gemini-key install step and the
  virtual-mic build step. Adds the MCP server as a first-class section with
  the tool table and the external-analyst flow.

showcase-accounts.png is deleted: it pictures the accounts mini-CRM removed
in #245 and nothing referenced it any more.

Note that the remaining desktop screenshots predate the removals — hero still
shows the intel board — and need a reshoot in a follow-up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant