Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [
"agent-skills",
"meetings",
"ai",
"claude",
"mcp",
"meeting-notes",
"privacy",
"rust",
"speech-to-text",
"transcription",
"voice-memo",
"whisper",
"parakeet"
],
"is_fork": false,
"size_kb": 20121,
"has_wiki": true,
"homepage": "https://useminutes.app",
"languages": {
"CSS": 43565,
"HTML": 737849,
"Rust": 5356949,
"Shell": 75057,
"Swift": 59902,
"Python": 443857,
"JavaScript": 538869,
"TypeScript": 748232
},
"pushed_at": "2026-07-23T01:30:49Z",
"created_at": "2026-03-18T06:11:04Z",
"owner_type": "User",
"updated_at": "2026-07-23T01:51:18Z",
"description": "Every meeting, every idea, every voice note — searchable by your AI. Open-source, privacy-first conversation memory layer.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Rust",
"significant_languages": [
"Rust"
]
},
"owner": {
"blog": "https://x1wealth.com",
"name": "Mat Silverstein",
"type": "User",
"login": "silverstein",
"company": "Business Vacation",
"location": "United States",
"followers": 177,
"avatar_url": "https://avatars.githubusercontent.com/u/4837632?v=4",
"created_at": "2013-06-26T16:09:19Z",
"is_verified": null,
"public_repos": 25,
"account_age_days": 4774
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.22.1",
"kind": "patch",
"published_at": "2026-07-17T19:19:39Z"
},
{
"tag": "v0.22.0",
"kind": "minor",
"published_at": "2026-07-16T16:10:44Z"
},
{
"tag": "v0.21.0",
"kind": "minor",
"published_at": "2026-07-13T17:00:50Z"
},
{
"tag": "v0.20.0",
"kind": "minor",
"published_at": "2026-07-08T21:16:41Z"
},
{
"tag": "v0.19.0",
"kind": "minor",
"published_at": "2026-06-25T21:41:51Z"
},
{
"tag": "v0.18.14",
"kind": "patch",
"published_at": "2026-06-20T01:34:23Z"
},
{
"tag": "v0.18.13",
"kind": "patch",
"published_at": "2026-06-18T10:51:39Z"
},
{
"tag": "v0.18.12",
"kind": "patch",
"published_at": "2026-06-15T21:32:25Z"
},
{
"tag": "v0.18.11",
"kind": "patch",
"published_at": "2026-06-12T23:40:53Z"
},
{
"tag": "v0.18.10",
"kind": "patch",
"published_at": "2026-06-12T17:25:21Z"
},
{
"tag": "v0.18.9",
"kind": "patch",
"published_at": "2026-06-11T22:35:42Z"
},
{
"tag": "v0.18.8",
"kind": "patch",
"published_at": "2026-06-11T04:48:19Z"
},
{
"tag": "v0.18.7",
"kind": "patch",
"published_at": "2026-06-10T21:08:25Z"
},
{
"tag": "v0.18.6",
"kind": "patch",
"published_at": "2026-06-08T22:19:14Z"
},
{
"tag": "v0.18.5",
"kind": "patch",
"published_at": "2026-06-02T16:07:15Z"
},
{
"tag": "v0.18.4",
"kind": "patch",
"published_at": "2026-05-29T06:24:33Z"
},
{
"tag": "v0.18.3",
"kind": "patch",
"published_at": "2026-05-29T03:24:33Z"
},
{
"tag": "v0.18.2",
"kind": "patch",
"published_at": "2026-05-20T11:08:37Z"
},
{
"tag": "v0.18.1",
"kind": "patch",
"published_at": "2026-05-20T07:00:14Z"
},
{
"tag": "v0.18.0",
"kind": "minor",
"published_at": "2026-05-14T22:50:51Z"
},
{
"tag": "v0.17.3",
"kind": "patch",
"published_at": "2026-05-12T03:42:44Z"
},
{
"tag": "v0.17.2",
"kind": "patch",
"published_at": "2026-05-11T19:23:19Z"
},
{
"tag": "v0.17.1",
"kind": "patch",
"published_at": "2026-05-11T17:01:11Z"
},
{
"tag": "v0.17.0",
"kind": "minor",
"published_at": "2026-05-11T05:19:24Z"
},
{
"tag": "v0.16.5",
"kind": "patch",
"published_at": "2026-05-09T16:52:53Z"
},
{
"tag": "v0.16.4",
"kind": "patch",
"published_at": "2026-05-07T15:11:11Z"
},
{
"tag": "v0.16.3",
"kind": "patch",
"published_at": "2026-05-07T14:07:03Z"
},
{
"tag": "v0.16.2",
"kind": "patch",
"published_at": "2026-05-07T05:23:19Z"
},
{
"tag": "v0.16.1",
"kind": "patch",
"published_at": "2026-05-04T17:38:42Z"
},
{
"tag": "v0.16.0",
"kind": "minor",
"published_at": "2026-04-29T22:45:57Z"
},
{
"tag": "v0.15.0",
"kind": "minor",
"published_at": "2026-04-27T20:59:28Z"
},
{
"tag": "v0.14.1",
"kind": "patch",
"published_at": "2026-04-23T23:08:08Z"
},
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2026-04-23T19:25:47Z"
},
{
"tag": "v0.13.3",
"kind": "patch",
"published_at": "2026-04-21T16:08:07Z"
},
{
"tag": "v0.13.2",
"kind": "patch",
"published_at": "2026-04-18T16:48:17Z"
},
{
"tag": "v0.13.1",
"kind": "patch",
"published_at": "2026-04-18T03:27:19Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2026-04-17T00:47:25Z"
},
{
"tag": "v0.12.2",
"kind": "patch",
"published_at": "2026-04-15T22:32:35Z"
},
{
"tag": "v0.12.1",
"kind": "patch",
"published_at": "2026-04-15T18:52:12Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2026-04-14T16:32:28Z"
},
{
"tag": "v0.11.3",
"kind": "patch",
"published_at": "2026-04-13T23:19:43Z"
},
{
"tag": "v0.11.2",
"kind": "patch",
"published_at": "2026-04-10T19:17:41Z"
},
{
"tag": "v0.11.1",
"kind": "patch",
"published_at": "2026-04-09T23:52:39Z"
},
{
"tag": "plugin-v0.8.0",
"kind": "other",
"published_at": "2026-04-09T05:15:01Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2026-04-08T21:43:50Z"
},
{
"tag": "v0.10.4",
"kind": "patch",
"published_at": "2026-04-07T18:26:28Z"
},
{
"tag": "v0.10.3",
"kind": "patch",
"published_at": "2026-04-07T07:03:31Z"
},
{
"tag": "v0.10.2",
"kind": "patch",
"published_at": "2026-04-07T00:43:57Z"
},
{
"tag": "v0.10.1",
"kind": "patch",
"published_at": "2026-04-06T21:27:11Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2026-04-06T02:47:29Z"
},
{
"tag": "v0.9.4",
"kind": "patch",
"published_at": "2026-04-02T17:55:35Z"
},
{
"tag": "v0.9.3",
"kind": "patch",
"published_at": "2026-04-01T18:21:24Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2026-04-01T02:00:48Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2026-03-31T16:36:07Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2026-03-31T16:03:13Z"
},
{
"tag": "v0.8.5",
"kind": "patch",
"published_at": "2026-03-31T02:47:32Z"
},
{
"tag": "v0.8.4",
"kind": "patch",
"published_at": "2026-03-29T22:17:02Z"
},
{
"tag": "v0.8.3",
"kind": "patch",
"published_at": "2026-03-29T14:28:57Z"
},
{
"tag": "v0.8.2",
"kind": "patch",
"published_at": "2026-03-28T23:08:05Z"
},
{
"tag": "v0.8.1-live-coach",
"kind": "prerelease",
"published_at": "2026-03-28T14:28:41Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2026-03-27T00:25:54Z"
},
{
"tag": "v0.7.3",
"kind": "patch",
"published_at": "2026-03-25T05:07:46Z"
},
{
"tag": "v0.7.2",
"kind": "patch",
"published_at": "2026-03-24T22:22:53Z"
},
{
"tag": "v0.7.1",
"kind": "patch",
"published_at": "2026-03-24T19:31:57Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-03-24T17:36:53Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-03-24T14:51:08Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-03-23T01:42:36Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-03-22T16:58:16Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-03-21T16:51:49Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-03-20T15:43:29Z"
}
],
"recent_commits": [
{
"oid": "3b13375e14897a575ddfcdd9cbcc6367f709b73d",
"body": "Adds a generic text-archive source to minutes import (issue #515):\nrecursively converts .md/.markdown/.txt transcripts and notes into\nMinutes meeting files with deterministic title/date/attendee inference\n(frontmatter, Date: lines, filename patterns, mtime fallback), YAML-safe\nfrontmatter, 0600 perm\n[…]\nin Minutes\nformat, files inside the output dir, and unreadable/non-UTF-8 files\nwithout aborting the batch. No LLM or network calls.\n\nCloses #515\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(import): add minutes import text for existing text archives (#516)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-21T23:11:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c0a356a16a1d9d3582b9b5f34777ad70ee4f8d0a",
"body": "The Site Release Link Consistency job on main went red after #514 merged\nwithout rerunning scripts/sync_site_release_version.mjs (test count moved\nto 1581).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(site): regenerate release constants after dictation test additions",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-21T22:49:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "146d062f6ff9ab232c789712890ec734360493fe",
"body": "…ry (#509)\n\nDictation would hang and mis-report a missing whisper model as\n\"mic silent, check input device\" — the model load stalled before any\naudio level was emitted, so the overlay fell through to its generic\nlevel-timeout string. This sent users chasing a microphone/TCC problem\nthat didn't exist\n[…]\nt tests + code\nreview; interactive click-test still recommended before release.\n\nCo-authored-by: Mat Silverstein <mat@x1wealth.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(dictation): graceful missing-model handling with one-click recove…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-21T18:27:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d45c92310dea7ad9cc5fb009771ac9c7e3d539b9",
"body": "…lision) (#512)\n\n`vocabulary add` derived an entry id via ASCII-only slugification, so a\ncanonical with no ASCII letters/digits (Cyrillic, CJK, etc.) produced an\nempty slug and collapsed to the bare `<kind>` (`term`/`acronym`/\n`organization`). Several such entries then shared one id, making\n`vocabul\n[…]\nary remove`: match by id OR exact canonical, so non-Latin\n entries can be removed by the term the user typed, not an opaque hash.\n\nCloses #511\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(vocabulary): unique id for non-ASCII canonicals (no bare-kind col…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-21T18:27:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fa8171966c63b524a35c01b23d7b26b0d03f9a12",
"body": null,
"is_bot": false,
"headline": "ci: add protected signed dev acceptance [skip ci]",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-18T17:45:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18e2c616d68a78ce9a9b5d3af14c720970149166",
"body": "* docs(plans): first-class voice enrollment design + phasing\n\nResearch + design for making voice enrollment first-class: three-legged\n(active enrollment, passive confirm-once learning, on-device privacy),\ngrounded in the existing voice.rs/voices.db/embedding-sidecar machinery\nand 2026 speaker-verifi\n[…]\nembed_solo_clip needs models to test; do it post-trust with a shared helper.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(plans): first-class voice enrollment design + phasing (#495)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-18T14:49:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0f43e92502303572a4f12666f45ee645fe6b3bb5",
"body": "… bundle (#507)\n\nloadMeetings() awaited loadProactiveContextBundle() *before* fetching and\nrendering the list. That bundle runs several corpus-wide scans (search +\nconsistency report + graph rebuild), so on launch the meetings list — and\nthe whole main view — stayed blank until all of it finished.\n\n\n[…]\nive bundle in the background and re-render once it resolves so the\nambient-context card still appears. First paint is no longer gated on the\nbundle.\n\nCo-authored-by: Mat Silverstein <mat@x1wealth.com>",
"is_bot": false,
"headline": "perf(desktop): don't block meetings-list first paint on the proactive…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-18T14:49:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "230e431280d1c3c6f6c967aa081146590773259c",
"body": "…aults (WU5-config) (#506)\n\nAdds the [voice] privacy knobs the voice-enrollment Phase 1 safe foundation\nneeds (docs/plans/voice-enrollment-phase1-spec.md, WU5): store_meeting_embeddings,\npassive_candidate_capture, candidate_retention_days, restricted_meetings_eligible,\nretain_non_self_embeddings. De\n[…]\nnrollment-from-history keeps working.\n\nConfig-only (VoiceConfig struct) — no collision with the in-flight\nconversation-trust config.rs changes.\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(config): granular voice-privacy settings with biometric-safe def…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-18T00:10:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f3cf81fa35ab87351bf5f09c7b455107c1c017e5",
"body": null,
"is_bot": false,
"headline": "feat(voice): add immutable sample profiles (#505)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T23:20:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87eff6010e949a8a9264b6966ec95631f019f2bf",
"body": "* fix(permissions): retry transient input probe outcomes (#501)\n\n* chore(site): sync test count for #501 probe retry tests (1559→1561)\n\nTwo new cross-platform unit tests (classify_probe_status,\nresolve_runtime_issue) added by the #501 fix. Regenerated via\nscripts/sync_site_release_version.mjs.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(permissions): retry transient input probe outcomes (#504)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T21:20:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1cd2debf52a98b82b858a3240aa767c139389d00",
"body": "…) (#503)\n\n.chat-messages inherited user-select: none from the body rule, so users\ncouldn't select or copy assistant answers or transcript snippets in the\nRecall panel. Add an explicit user-select: text override (plus -webkit-\nprefix for the WKWebView) scoped to the chat message container.\n\nCloses #490\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(desktop): make Recall/chat panel text selectable + copyable (#490…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T20:24:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8707de0d9a46fb56464e932ef7f02cc696352d50",
"body": null,
"is_bot": false,
"headline": "fix release registry publish workflow",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T19:32:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bd03080c758f7d4a04ee5ef0ccda72c23691c81",
"body": "Pin crates/mcp to the exact minutes-sdk 0.22.1 that release-publish.yml\npublishes first, with the resolved tarball + integrity, so the tag\nworkflow's strict npm ci for mcp resolves the freshly-published SDK.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "release: pin minutes-sdk 0.22.1 for mcp",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T19:07:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9913babb8435f1d147411c5c6c85f471d934da40",
"body": "Patch release. Bugfixes only.\n\n- fix(hotkey): stop the system-wide CGEventTap leak — a permission probe\n created a kCGHIDEventTap every 15s and never invalidated it, exhausting\n the system tap table and freezing keyboard/mouse (and crashing\n WindowServer) after the app ran a few hours; quitting M\n[…]\ntect PipeWire system-audio sinks on Linux.\n (#489, thanks @gtheys)\n- fix(summarize): support the Apple engine for speaker mapping. (#487, #498)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): 0.22.1 (#502)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T18:28:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "464295c580f17177b4ad3d9f715532ab624cfea2",
"body": "… (#493)\n\n* fix(parakeet): don't misreport benign helper exits as argv/#163 drift\n\nlog_parakeet_helper_failure_once printed the same \"check that every argv\nflag is accepted by the ParakeetHelper clap struct (issue #163)\" warning\nfor ANY non-zero helper exit. But the host-process helper also exits\nno\n[…]\nuthored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Mathieu Silverstein <silverbook@M-MacBook-Pro.local>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(parakeet): don't misreport benign helper exits as argv/#163 drift…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T18:08:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e3931212089e89cc637e84249fe88373da976892",
"body": "…15s (#488) (#500)\n\ninput_monitoring_runtime_issue() created and tore down a real\nkCGHIDEventTap on every 15s permission-monitor poll (for users who granted\nInput Monitoring) just to detect a \"granted but unusable\" state. That state\nis fixed for the process lifetime -- it's only cleared by restartin\n[…]\nso it runs exactly once per launch, preserving the\ndiagnostic with zero ongoing churn. Complements the CFMachPortInvalidate\nteardown fix (#499).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(permissions): probe Input Monitoring once per process, not every …",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T17:47:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1f89523b09b677459f9d8b73aee704ac105cfce4",
"body": "…em-wide tap leak (#488) (#499)\n\n* fix(hotkey): invalidate CGEventTap Mach port on teardown to stop leak (#488)\n\nrun_event_tap tore down with CGEventTapEnable(false) + CFRelease but never\ncalled CFMachPortInvalidate, so each tap was left registered in the\nsystem's 512-entry event-tap table as a disa\n[…]\n. Add CFMachPortInvalidate there for completeness,\nmatching the teardown fix.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(hotkey): invalidate CGEventTap Mach port on teardown to stop syst…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T14:43:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3cf919648ed86c20041a05687c132fd2658505a2",
"body": "#439 added the \"apple\"/\"apple-fm\" engine arm to summarization and title\nrefinement (and the speaker_mapping_model_hint metadata), but not to the\nspeaker-mapping executor run_speaker_mapping_prompt, so engine = \"apple\"\nfell through to the \"Unknown engine: apple\" catch-all and Level-1 speaker\nmapping \n[…]\no multimodal input; macOS gating and graceful degrade already\nwork (map_speakers logs-and-continues on any engine error).\n\nReported by @jmh1313.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(summarize): support Apple engine for speaker mapping (#487) (#498)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T06:47:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fa413794217811dfb52580703a779aa04e0ec010",
"body": "…cOS 15 (#494) (#497)\n\nThe bundled Swift helpers (system_audio_record, mic_check, calendar-events)\nwere compiled with swiftc and no -target. swiftc ignores\nMACOSX_DEPLOYMENT_TARGET (unlike clang/ld), so it stamped each helper's\nLC_BUILD_VERSION minos from the host SDK -- macOS 26 on the macos-latest\n[…]\necording paths stay weak-linked behind @available/#available guards, so\nthe binaries load on macOS 14+ and run on 15+.\n\nReported by @Victors081.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(build): pin Swift helper deployment targets so 0.22.0 loads on ma…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-17T06:47:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "80d7c3509c29bc8934158a49c010aaf11c99085c",
"body": "* fix(core): let `--call` auto-detect PipeWire system-audio sinks\n\n`CapturePlan::system_audio_ready()` only recognized name patterns\n(BlackHole, .monitor, Teams Audio, etc). `detect_loopback_device()`\nalready picks a real PipeWire sink (speaker/headphones/Bluetooth A2DP)\nas the system-audio route vi\n[…]\no behavior change.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Mat Silverstein <matsilverstein@gmail.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(core): let --call auto-detect PipeWire system-audio sinks (#489)",
"author_name": "Geert Theys",
"author_login": "gtheys",
"committed_at": "2026-07-17T05:22:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f05aa87bd4e3a3556f0e5a48e8ace66c11f68d21",
"body": "Tag-triggered release-publish.yml publishes minutes-sdk, minutes-mcp,\nminutes-core, and minutes-cli with zero stored credentials: npm OIDC\ntrusted publishing (with provenance) and crates.io via\nrust-lang/crates-io-auth-action. Deny-all default permissions,\nid-token:write only on publish jobs, everyt\n[…]\needed\na cross-machine key. docs/release/trusted-publishing.md carries the\none-time registry-side setup; procedure.md now ends at \"push the tag\".\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci(release): OIDC trusted publishing for npm + crates.io (#486)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T19:15:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "51d2d13c321e3ddafabbee4f6172f4c203167eed",
"body": null,
"is_bot": false,
"headline": "release: pin minutes-sdk 0.22.0 for mcp",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T15:45:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf225e9eed6c8264111ec91b2455a4c801035e8d",
"body": "…es (#485)\n\nFirst release through the new rails: single-command transactional bump\n(scripts/bump-version.mjs), all Domain-1 sources verified by\ncheck_version_sync. Notes drafted per the /minutes-release-notes skill.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): bump version to 0.22.0 across all sources + draft not…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T05:11:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "32f80062c6bd045292715562705603d3a96f9c95",
"body": "…s (#484)\n\nTwo hand-repeated workflows encoded as canonical skills (23 total).\nRelease notes: commit-range classification, release-voice conventions\n(incl. the no-em-dash rule from 88ded28), version-sync checklist. SEO\nwave: the #435-#438 methodology (SERP recon, DESIGN.md token\nconstraints, interna\n[…]\n\nspecifics deliberately kept out of the public repo. Full compiler gate\ngreen: 33 tests, ownership audit, goldens, compile:dry across all hosts.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(skills): minutes-release-notes + minutes-seo-wave workflow skill…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T04:10:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "43c55de8fa33990715118d8ab2829269a785a708",
"body": "…(#483)\n\nCross-agent (CLAUDE.md + AGENTS.md, matching text): wrong rewrite/merge\nworse than none (every-name-right, #385 series); recording never\ndegraded by an optional consumer (RFC 0004 failure isolation, enforced\nby the capture-reliability suites); auto-update off until hosted\nmanifest + rollback UX (auto-update-evaluation.md). Pointers, not\nenforcement — each names its primary control.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(agents): promote three proven decisions into agent instructions …",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T03:59:01Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8fee02097daf575cdd5a83f6e6beb900c92abdf2",
"body": "…ndary (#482)\n\n* feat(core): capture-reliability invariant suites + engine process boundary\n\nEncodes the invariants behind the silent transcript/audio-loss class\n(Cristy blank-transcript loss; live-sidecar inference starvation;\n#395/#396, #409, #412/#414, #467) as tests, so a fifth recurrence fails\n\n[…]\ned it. One sweep confirms no direct\nCommand::new remains outside the wrapper.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(core): capture-reliability invariant suites + engine process bou…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T03:55:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f0a1e17d6745202ac492b68edf44dcd5c71d4bb1",
"body": "… (#481)\n\nEncodes the publish ordering that bit twice (mcp shipped depending on\nan unpublished minutes-sdk — the v0.19.0/v0.20 lag). scripts/release.mjs:\nphase1 packs+tests+publishes the sdk and polls the registry for exact\nvisibility; phase2 commits ONLY the exact mcp pin + lockfile (diff\nasserted)\n[…]\nrkflow now gates artifacts on a\nrelease_readiness job running the --release invariant, so a manual tag\non a transitional tree publishes nothing.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(release): two-phase committed release flow with provenance gates…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T03:13:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3151a46d828e1388ea5d4d3374ef93308c6f0000",
"body": "beads_reaper.mjs is a report-only local script (beads state is local\nDolt — never hosted CI) surfacing the three drift classes that\naccumulated historically: in_progress idle >30d (29 today), open issues\nmatching merged PR titles, and exact-duplicate titles. PLAN.md gets a\nstatus banner pointing at the live sources of truth — it reads as a\ncurrent tracker but stopped being one in April.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(tracker): local beads reaper + PLAN.md truth banner (#480)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T02:44:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f1fed5130022af5b28adccc0016b526fa5d0aa46",
"body": "docs claimed \"pre-push hooks + CI enforce these\" while .git/hooks/ held\nonly samples. Ships a real optional .githooks/pre-push (version sync\nalways; skills check when built, explicit skip line otherwise; <0.1s)\nand scripts/setup-hooks.sh that refuses to clobber an existing\ncore.hooksPath without --force. Docs now say what is true: CI is\nauthoritative, hooks are optional fast feedback, --no-verify exists.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(dev): optional pre-push hooks + honest enforcement docs (#479)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T02:44:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2ce603439fd97e3de4bec1bc115c25ddf534bc52",
"body": "* feat(design): machine-readable tokens + shrink-only literal lint\n\nDESIGN.md's palette/font rules had zero enforcement. design/tokens.json\nis the hand-curated machine-readable source (never parsed from prose,\nwhich also names prohibited values); raw color/font literals are allowed\nonly in token-def\n[…]\nassed the\nprefix allowlist. Expanded with fixtures for the reported bypasses.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(design): token enforcement with shrink-only baseline (#478)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T02:44:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c6928f076fc09560ebe79d448e474f1d2c2d7236",
"body": "…#477)\n\nThe compiler verified sources compile to expected outputs but never\nrejected orphans: deleting a canonical skill left its generated mirrors\nshipping forever. npm run check now audits every file under the\ngenerated roots against current sources plus a data allowlist for\nlegitimately non-generated surfaces (hooks, agents, packs). Goldens\nextended from 4 pilot skills to all 21 (1.1MB committed).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(skills): stale-artifact ownership check + full golden coverage (…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T02:08:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e5eeee80cfeadf777c85e4435711961a7d4a6e57",
"body": "* feat(release): transactional bump-version script\n\nOne command writes every Domain-1 version source (manifests, package\nlocks, Cargo.lock workspace entries, MCP_SERVER_VERSION, derived site\nconstants) via a temporary git worktree: the real tree receives a\nsingle validated git-apply or nothing. --dr\n[…]\ny-at-target sources produce no diff) while still failing\non unexpected files.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(release): transactional bump-version script (#476)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T02:08:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7cd197b2c23392be2cc50b127e13428ed0d559f8",
"body": "CI deleted crates/mcp/package-lock.json and ran npm install every run\n(npm/cli#4828 workaround), so the committed lockfile was never\nvalidated — a fresh dependency graph shipped on every build. The\nlockfile is now regenerated with Node 22/npm 10 whose v3 format\nrecords all platform-specific optional\n[…]\ntries across\nlinux/darwin/win32), the hack is replaced with npm ci, and a slim\n3-OS mcp_lockfile_check matrix job proves portability in ci_gate.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: validate the committed MCP lockfile instead of deleting it (#475)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T01:37:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a855d73ccc6e69ca267add688a8f8cb96db24c43",
"body": "* ci: enforce release version lockstep\n\n* feat(release): add --release mode asserting exact mcp->sdk pin\n\nIn --release mode the checker additionally requires\ncrates/mcp/package.json's minutes-sdk dependency to be an exact semver\nequal to crates/sdk/package.json's version — the invariant that the\nv0.\n[…]\nole-line match) with fixtures for the comment-only and embedded-string\ncases.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: three-domain version-policy checker (#473)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T01:17:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fb2ae675ea75676042bcf207cec6419b47e8db5c",
"body": "* ci: lint workflows with pinned actionlint\n\n* ci: expression-aware runner-context rule; fix live env.ImageOS bugs\n\nactionlint models env as a loose string map and does not flag\n${{ env.ImageOS }}, so the runner-image cache-key class gets a dedicated\nexpression-aware checker (comments never flag; no\n[…]\n single-quote-aware). New fixtures\ncover the indexed and format-braces cases.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: workflow linting as an independent required check (#474)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T00:51:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f8ac8f157cf5dcaf12adda3523cda1a0ac3b5847",
"body": null,
"is_bot": false,
"headline": "ci: add required skills compiler gate (#472)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-16T00:26:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "538e93edec2532edaca44e75591ed7e125e6aac9",
"body": "Add the live-assistance session contract, synthetic privacy-safe eval corpus, deterministic reducer and routing replay, required CI enforcement, generated agent surfaces, and implementation documentation.",
"is_bot": false,
"headline": "feat(agent): define session-aware live assistance (#470)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T22:06:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8cd9345e69b7c9046d42194f57c2526da32e9c08",
"body": null,
"is_bot": false,
"headline": "feat(context): expose bounded live screen awareness (#471)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T20:49:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ebca4e14f8b7457a3c867b3dc9a4b7099accf919",
"body": "…ngine-active) (#469)",
"is_bot": false,
"headline": "test(coach): make MCP copilot contract model-aware (guided-setup vs e…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T19:49:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7557c8a00e3fae9979f885e61b63bb340e66051b",
"body": "…468)\n\n* fix(desktop): coalesce meetings watcher fs events before emitting artifacts:changed\n\nLinux inotify delivers one event per syscall (write/chmod/rename/\nclose-write) instead of the batched events FSEvents gives on macOS.\nEvery raw event fired artifacts:changed immediately, and the UI does\na f\n[…]\n@gtheys's PR #468.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Mat Silverstein <matsilverstein@gmail.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(desktop): stop meetings list flashing from Linux inotify noise (#…",
"author_name": "Geert Theys",
"author_login": "gtheys",
"committed_at": "2026-07-15T15:47:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "811df6059ff55ff42b8c7921429072fdd722f7cb",
"body": "Honor the configured microphone in native ScreenCaptureKit calls and degrade to a surviving PCM stem instead of failing the recording.\n\nReported and diagnosed by @gdiab.",
"is_bot": false,
"headline": "fix(capture): preserve recoverable native call audio (#463) (#467)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T08:21:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e22051672c0e3963878e6ee973ccacd6a4c9803",
"body": "…(#466)\n\n* feat(cli): tune Coach model to local hardware\n\n* chore(coach): add monthly model freshness eval\n\n* chore(release): sync test count for coach model-selection tests\n\n* fix(copilot): synchronize deterministic eval nudges",
"is_bot": false,
"headline": "feat(coach): hardware-aware model selection + monthly freshness eval …",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T05:54:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7fd3b2b8354209b4c7e88f766406fd9bcedd1019",
"body": null,
"is_bot": false,
"headline": "fix(cli): make Coach setup API-first (#465)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T01:14:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7469de1a4399fe63053e63625c62e46f2b89e43",
"body": "…#464)\n\n* feat(core): add realtime copilot contract and engine\n\n* feat(cli): add portable copilot stream surface\n\n* refactor(tauri): share Ollama streaming transport\n\n* docs: document realtime copilot configuration\n\n* chore(pr): trim copilot to additive core\n\n* feat(copilot): add lock-free live part\n[…]\n\n\n* fix(copilot): retry relay establishment EOF\n\n* chore(release): re-sync test count after relay reconnect stress test\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(copilot): real-time meeting Coach integration (atomic landing) (…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-15T01:11:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "19e95b4c16c92423c801239144c97e6fe1896089",
"body": "…tion copy (#458) (#459)\n\n@DoctorEdMilan diagnosed that the extension display name (\"Minutes —\nMeeting Memory for AI\" / \"Minutes - Meeting Workspace for Claude\") contains\na space-separated dash that the host sanitizes to three underscores, making\n`mcp__Minutes___...__list_meetings` parse ambiguously\n[…]\n, and drop the stale version-pinned changelog\nblocks (0.18.13/0.20.0) for evergreen copy. version + tools untouched.\n\nCloses #458.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(mcpb): rename display name to fix widget tool resolution + reposi…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-14T17:16:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3fb2e837b6cfedeb71fe88cdc5d6e3ec95bb323f",
"body": "The claude chat path used `--output-format stream-json` but not\n`--include-partial-messages`, so claude emitted one complete assistant\nmessage at the end — the panel showed \"thinking…\" through the whole\ngeneration, then dumped the full reply at once (no token streaming like\nClaude Code/Codex). Verif\n[…]\nread for the\ngrounding narration). Reply now renders as it generates. Recall-chat\nsurface only; does not touch live_transcript.rs.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(recall): token-level streaming in the chat panel (#453)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T21:14:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "219c20c9dee28ddf95791886350fd608036003fc",
"body": "…452)\n\n* feat(recall): stop/cancel button for an in-flight chat turn (#444)\n\nAdds a Stop control to interrupt a long Recall chat turn (cold start +\ngrounding + response). AppState tracks one turn with a monotonic id,\ncancel flag, and owned child handle; cmd_recall_chat_cancel tears down\nvia the same\n[…]\nnon-windows so each target moves it exactly once.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(recall): stop/cancel button for an in-flight chat turn (#444) (#…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T19:49:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0e41793b5f5bda5987577faefe99f4df9d07c7a4",
"body": "…ved files (#451)\n\nFollow-up to #449, which missed several version sources the release\nprocedure requires: manifest.mcpb.json runtime version (MCP bundle guard),\nboth package-lock.json files (npm version), and the derived\nsite/lib/release.ts + llms.txt / docs mirrors (sync scripts). All now at\n0.21.0; manifest.json and manifest.mcpb.json runtime versions match.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): complete 0.21.0 bump — mcbp manifest, lockfiles, deri…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T16:55:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d52f0b6d5ec4055db09356237a2b97b6f642c99a",
"body": "Bumps all version sources (Cargo workspace, tauri.conf.json, sdk +\nmcp package.json, manifest.json, MCP_SERVER_VERSION) and Cargo.lock.\nThe mcp -> minutes-sdk dependency is intentionally left at ^0.19.0 —\nbumping it to an unpublished ^0.21.0 breaks CI's npm install (the trap\nfrom the v0.20.0 release); the publish sequence handles it after sdk\nis on npm.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(release): bump version to 0.21.0 (#449)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T16:53:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "aab7bc78734b634d54562dddafb9de59677fc368",
"body": "…8) (#450)\n\nLive-mode sessions were ephemeral: the fixed ~/.minutes/live-transcript.\n{wav,jsonl} slot was overwritten by the next `minutes live`, and stopping\nnever created a diarized/summarized meeting like Record — a real\ndata-loss footgun.\n\nNew `[live_transcript] promote_on_stop` (default \"proces\n[…]\nfacts + meeting_path.\n\nImplemented by codex gpt-5.6, reviewed + verified here (7 tests, fmt,\nclippy -D warnings, cli+app compile).\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(live): preserve + promote live sessions to meetings on stop (#44…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T16:50:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bcdddbbbe50632e0c0ba905680064130bf399a9a",
"body": "…le toggle (#447)\n\nRe-lands #446 (auto-closed when #445's base-branch delete cascaded to the\nstacked PR). Combines: scroll-anchoring (auto-scroll only if at bottom,\n\"jump to latest\" pill otherwise — the tmux-scrollback behavior), a compact\nRecall header on short viewports for coach/prompter use, and\n[…]\nisible faint keyboard glyph).\nFrontend only; index.html taken verbatim from the node-checked\nfeat/coach-ux tip. Follow-up to #404.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(recall): coach-mode UX — scroll-anchoring, compact header, visib…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T15:52:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a1da574c3fd6ed3191d09e5fd89d48789a161e60",
"body": "…low-up) (#445)\n\nAssistant replies now render **bold**, *italic*, `inline code`, and fenced\ncode blocks instead of raw text, incrementally as the response streams.\n\nXSS-safe by construction: fenced code is pulled out and escaped, the rest\nis HTML-escaped BEFORE any formatting, and the inline rules o\n[…]\ner list\nlayout, so only inline emphasis + code needed handling. Verified with an\nXSS + markdown + collision test suite (10 cases).\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(recall): render a safe markdown subset in chat replies (#404 fol…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T15:50:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "29ad704a6edcd641254411c3f03b324b1e412c38",
"body": "…rminal by default (#362) (#404)\n\n* feat(recall): add native chat panel with headless Claude streaming\n\nReplace xterm.js TUI as default Recall UI with a structured chat panel.\nBackend: cmd_recall_chat_send spawns claude --output-format stream-json\n--no-interactive and streams chunks to frontend via \n[…]\noken compile — the #443 class). Matches the production init in main.rs.\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: Mat Silverstein <matsilverstein@gmail.com>",
"is_bot": false,
"headline": "feat(recall): native chat panel for Recall, replacing the embedded te…",
"author_name": "Maosuarez",
"author_login": "maosuarez",
"committed_at": "2026-07-13T14:57:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1a88941078f709c409d03a8b264bf0e34c9c13d1",
"body": "…S 26+) (#439)\n\n* feat(core): on-device summarization via Apple Foundation Models (macOS 26+)\n\nNew \"apple\" summarization engine: zero-setup, zero-API-key, zero-network\nsummaries, action items, and decisions on macOS 26+ with Apple Intelligence.\n\n- crates/core/src/apple_fm.rs — helper lifecycle mirro\n[…]\nnthropic.com>\n\n* chore(site): sync release constants after rebase onto Wave 2\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(core): on-device summarization via Apple Foundation Models (macO…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-13T14:22:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "548f8b537a1b28ca5be26dc9be1e37a8074c0a98",
"body": "…s (#443)\n\n#441 (consent Wave 2) added `include_restricted` to SearchFilters but\nmissed the struct literal in tests/integration/pipeline_test.rs, so\n`cargo test -p minutes-core` fails to compile the integration target\n(E0063). Add the field with the default `false` (exclude restricted),\nmatching SearchFilters::default(). Build restored.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(test): add missing include_restricted to integration SearchFilter…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-12T10:40:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "80e8ebeab7c3906005e54c21fbc41cdafc517043",
"body": "…lass 2) (#442)\n\nThe extractor sometimes returns several names as one string (\"Gert and\nLiam\"), which fused into a single person entity (\"gert-liam\") in a real\nvault. Add split_person_references(): split on the conjunctions `and`\n(case-insensitive), `&`, `+`, `;`, and on commas only when a conjuncti\n[…]\npreserved)\n+ an end-to-end build_entity_links check that \"Gert and Liam\" yields\ndistinct entities while \"Sarah Chen\" stays intact.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(graph): split multi-person strings into separate entities (#385 c…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-12T09:54:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3abcdd44e534ca46681db9f3a60355168a0d73db",
"body": "…#441)\n\n* feat(consent): Phase 2 Wave 2 — agent-layer sensitivity enforcement (minutes-3yub.4)\n\nRestricted meetings (sensitivity: restricted) are now excluded by default\nfrom every agent surface, with an explicit, logged override:\n\n- core search: SearchFilters.include_restricted; FTS post-filter +\n \n[…]\n@anthropic.com>\n\n* chore(site): sync release constants after rebase onto #440\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(consent): Phase 2 Wave 2 — agent-layer sensitivity enforcement (…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-12T04:22:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3e82d31a44b17c735f29b8758b0e6a5fa17b7916",
"body": "The title model sometimes answers the prompt conversationally\n(\"I'll create a concise meeting title...\") instead of returning a bare\ntitle; the first line was slugified straight into the filename (real\noccurrence: 2026-07-02-i-ll-create-a-concise-meeting-title-mat.md).\n\nAdd looks_like_instruction_ec\n[…]\n to avoid nuking legitimate titles (e.g. \"Here Comes...\").\n\nTests: unit coverage for the guard + an end-to-end fallback/log check.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(pipeline): reject instruction-echo titles from the LLM (#401) (#440)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-12T03:33:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "200fcfcac9afa3d6a796961cba48bb1229872c9c",
"body": "…versarial review fixes (#438)\n\nTwo new pages:\n- /resources/hipaa-compliant-ai-note-taker — vendor-matrix capstone for the\n compliance cluster (Otter/Fireflies/Fathom/Krisp conditional, Granola no,\n on-device outside the BAA framework), FAQPage JSON-LD, links all analyses\n- /resources/is-it-legal-\n[…]\npture\n mechanism corrected (native Swift capture / loopback, not bare cpal);\n consent frontmatter claim softened to match Option<ConsentBasis>\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): SEO wave 4 — HIPAA capstone, recording-legality guide, ad…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-11T20:05:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ee2c0431ceabc29b39d60ff5fddd85fb1ad2fe03",
"body": "…resource guides (#437)\n\nAll competitor facts researched fresh (2026-07-11) from official sources\nby parallel research agents, then adversarially reviewed (fact-diff vs\nsourced reports, honesty audit vs Rust source, link/consistency greps):\n\n- /compare/fathom-vs-minutes — Fathom now bot-free-capable\n[…]\ninst source —\nureq exists only in summarize.rs (opt-in text summarizer); capture.rs /\ntranscribe.rs / dictation.rs have zero network references.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): SEO content wave 3 — 3 compare pages, 2 HIPAA answers, 3 …",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-11T18:29:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "62dd97a8e542c2083f91a40811230df830f72738",
"body": "…up, engine post (#436)\n\nWeeks 3-6 of the SEO plan (internal, docs/marketing/):\n\n- /writing/whisper-cpp-vs-parakeet-cpp — first-party engine comparison\n grounded in docs/architecture/parakeet.md benchmarks and production\n fallback behavior; added to writing index\n- /resources/best-local-speech-to-\n[…]\nlies/host controls) targeting competitors'\n churn queries; ends at botless capture\n- sitemap.ts: 4 new routes; .md twins for all resource pages\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): SEO content wave 2 — privilege, anti-bot, local STT round…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-11T18:02:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "33081a4a15d4a1ba4251bdc2c005a33dbaa9b3f0",
"body": "Competitive strategy docs follow the existing internal-artifacts\nconvention (docs/marketing/ is already gitignored).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore(docs): move SEO plan to gitignored docs/marketing (internal)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-11T17:47:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a92b39ad08d59a755b5549cfeed9fc2715e98c91",
"body": "…sper compare (#435)\n\nAhrefs research (docs/plans/seo-plan.md): 370 refdomains but 1 ranking\nkeyword; compliance and dictation clusters are near-uncontested (KD 0-13)\nand cloud competitors structurally can't follow. Ships the weeks-1-2 pages:\n\n- /security — on-device architecture pillar with honest \n[…]\ntation-beachhead comparison\n- sitemap.ts + robots.ts (site had neither)\n- footer Security link, compare hub entry, .md twins for all three pages\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): SEO wedge pages — security pillar, HIPAA answer, superwhi…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-11T17:45:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "63cb5c5e65a2e18850495348b80a305b7f0390c3",
"body": "…marizers (#421)\n\n* fix(jobs): respect keep_after_summary when cleaning screenshots on job completion\n\npreserve_audio_alongside_output() unconditionally deleted the per-recording\nscreens dir after processing, so screenshots vanished even with\nscreen_context.keep_after_summary = true. The pipeline's \n[…]\namp is now the last\nwhitespace-delimited token inside the brackets, tolerating bare, diarized,\nand attributed-name labels alike. Companion regression test with a >100k\ndiarized transcript, per review.",
"is_bot": false,
"headline": "fix(screen-context): retain screenshots and deliver them to agent sum…",
"author_name": "Ryan",
"author_login": "rymalia",
"committed_at": "2026-07-11T17:32:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "973bb6dc77040eb4c19433f502f8efdf6b541370",
"body": "The hero transcript card streams its lines in once on load, mirroring how\nMinutes streams real transcription — CSS-only (staggered animation-delay),\ngated behind prefers-reduced-motion: no-preference so the reduce path\nrenders the final state instantly. No JS, no hydration flash. Amend\nDESIGN.md's M\n[…]\nresolve the standing contradiction with the\n\"streamed partials, never spinners\" interaction-craft rule; add a decision\n-log entry.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): product-honest streaming-transcript hero reveal (#434)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T22:19:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d8fe04f3e3b704fe6f257e4336ff7c98d576d74f",
"body": "10/10 pass within DESIGN.md (no motion/scroll effects, which the system\nforbids): a spec-sheet trust bar under the hero for the regulated buyer\n(on-device · nothing uploaded · MIT · consent in every file), and a new\nSection 02 \"On-device\" that makes the ownership wedge visual — the\ndevice-vs-cloud d\n[…]\nid\non-device) reused from the Granola comparison as a homepage signature.\nRenumber trailing sections; add an On-device nav anchor.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): homepage elevation — trust bar + on-device data motif (#433)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T22:12:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "56124a88776c2d3032c4033328e6795e8020fc52",
"body": "…mory (#432)\n\nLead with the ownership/permanence line (\"no one can take it from you\")\nand the acquisition/subpoena wedge, reframe off \"infrastructure for\nagents\" to \"the private, owned conversation-memory layer,\" and name the\nnot-another-notetaker distinction. Keeps the loved lines (grep still\nworks, no vendor to outlive; agents have run logs / humans have\nconversations).\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(readme): align positioning with the site — owned conversation-me…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T21:26:40Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8550acc32fcfc0fc5a5fdfd28a27cd78409fbf52",
"body": "…itecture (#431)\n\nThe positioning wedge vs the real competitor: Granola captures locally\nbut streams audio to cloud transcription (Deepgram/AssemblyAI), enhances\nvia cloud AI (OpenAI/Anthropic), and stores transcripts + notes on AWS\n(US only). Minutes is on-device end to end. Add an honest, sourced\n\n[…]\nOC 2) so the wedge stays fair and defensible; all claims cited to\nGranola's own security/privacy FAQ. Keep the .md mirror in sync.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): sharpen Granola comparison to the on-device vs cloud arch…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T21:09:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "961999c15891409d9b0947eabcb561db0e44e49e",
"body": "Dictation is the low-friction daily habit and the front door to the\nproduct (per the positioning decision). Promote it from a buried feature\ncell to a dedicated Section 01 right after the hero: the hold-to-talk\nloop, a daily-note card in the transcript-card treatment, and the true\ndifferentiator vs.\n[…]\nxt and forget\nit; Minutes keeps every word locally in the same owned memory. Renumber\nthe following sections and add a nav anchor.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): elevate dictation to a front-door on-ramp section (#430)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T21:01:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a1e99b2efb8988cf4df7345d2431df4955474679",
"body": "…#429)\n\nLead with the ownership/permanence wedge that 2025's cloud-memory\nbetrayals (Limitless acquisition, Otter suit) made concrete, instead of\nthe agent-readable framing — which becomes the mechanism beneath it. The\none claim no cloud competitor can copy is \"no one can take it from you.\"\n\nReframe\n[…]\nch for the buyer who\nactually pays: legal/clinical/financial professionals who can't put\nclient conversations in a cloud recorder.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(site): reposition hero on ownership + name the regulated buyer (…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T20:54:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fd2629c6bce7a4e1d338b30f9893dbfc9ed02526",
"body": "…uctions (#426) (#428)\n\nCLAUDE.md, AGENTS.md, and the release/updater docs hardcoded a specific\nDeveloper ID ('Mathieu Silverstein (63TMLKT8HN)') in a public repo. Agents\nand humans follow these literally, so exporting that identity on a machine\nwithout the cert makes build.sh/install-dev-app.sh abo\n[…]\n mechanism\nbut use a generic placeholder; the identity is machine-local (shell profile /\nuntracked env), not tracked instructions.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: remove hardcoded personal Developer ID from tracked agent instr…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T19:39:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d55d635dcf389e1029e01275da32c6cfd6b28055",
"body": "…d surface permission failures (#427)\n\nThe `minutes stop` sentinel broke the record loop without setting the shared\nstop flag; the screen-capture thread only watched that flag, so\nScreenCaptureHandle::drop blocked in join() while post-meeting screenshots\naccumulated toward the 60-frame cap. The hand\n[…]\nhes\nminutes.log, events.jsonl (screen_context.unavailable), a desktop\nnotification at recording start, and a new `minutes health` item that probes\nwith a real capture attempt.\n\nFixes #423. Fixes #424.",
"is_bot": false,
"headline": "fix(screen-context): stop capture thread on every record-loop exit an…",
"author_name": "Ryan",
"author_login": "rymalia",
"committed_at": "2026-07-10T19:24:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0a0cc957535d254ccfbe12b24f5ad9e44514129e",
"body": "…nt denial can't hollow out the app (#422) (#425)\n\ncp -rf into an existing /Applications/Minutes.app bundle trips macOS App\nManagement protection; on denial it deletes what it can but can't write the\nnew files, leaving the app hollowed out (skeleton dir, no Info.plist, no\nbinaries) — destroyed, not \n[…]\n /Applications is\nwritable. On failure: clean up, leave the existing app intact, and point the\nuser at the App Management setting.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(scripts): stage+atomic-swap in build.sh --install so App Manageme…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-10T17:42:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "287844292618a5c72f30d5054d5037b16367be4e",
"body": "…t yet on npm; matches the lag pattern from v0.19.0)",
"is_bot": false,
"headline": "fix(release): mcp depends on published minutes-sdk ^0.19.0 (0.20.0 no…",
"author_name": "silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-08T21:01:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0162fa63cfa87b840df897eb7ebd932b0cd3b962",
"body": "…ease bump",
"is_bot": false,
"headline": "chore: untrack local scratch/log files accidentally staged in the rel…",
"author_name": "silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-08T20:59:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f8c68ca678485279eec143a61e39ae88298ed6fe",
"body": null,
"is_bot": false,
"headline": "chore(release): bump to v0.20.0",
"author_name": "silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-08T20:57:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9432d786fdd33fecc9e8a7e37338dc55c502b0cd",
"body": "…r speaker confirm (#391) (#419)",
"is_bot": false,
"headline": "fix(desktop): replace unsupported prompt() with in-app input modal fo…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-07T14:57:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9b37afcea1b1e3df78bcd327f90d5ffac413e39",
"body": "…rences (#406)\n\nConsolidate scattered documentation (~40 files from root and loose docs/) into\norganized subfolders grouped by purpose:\n\n- docs/architecture/ — system design, audio processing, transcription models\n- docs/checklists/ — pre-commit, compatibility, regression testing workflows\n- docs/de\n[…]\nuced cognitive load through purposeful organization\n- Faster discovery of relevant documentation\n- Preserved git history (all moves via git mv)\n\nCo-authored-by: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: reorganize documentation into clear taxonomy and fix cross-refe…",
"author_name": "Maosuarez",
"author_login": "maosuarez",
"committed_at": "2026-07-07T01:25:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0c88050dd28a7c9cd8221491de07dcf03a5fb481",
"body": "…e Windows hang (#415) (#416)\n\n* feat(diag): stage breadcrumbs for process pipeline to localize Windows hang (#415)\n\n* chore: sync release test count",
"is_bot": false,
"headline": "feat(diag): stage breadcrumbs for the process pipeline to localize th…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-06T17:53:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d59d1d178bf51baa7448a87d5132acf35510f270",
"body": "… evidence, not in-person system-silent (#412 false positive) (#414)",
"is_bot": false,
"headline": "fix(pipeline): silent-remote guard fires only on native-call recovery…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-04T03:38:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c05a995e58da06fd658d9d4afd84bcddec8f1e0e",
"body": "…ently lost (#286) (#412)\n\n* Guard silent remote call stems in batch pipeline\n\n* fix(pipeline): key silent-remote guard off capture_warnings; cover queued+recovery paths, drop sparse false-positive (review)\n\n* chore: sync release test count (silent-remote guard)",
"is_bot": false,
"headline": "fix(pipeline): flag call recordings whose remote/system audio was sil…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-04T01:09:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b717ace566ec43f381a3d9dc7260328800ed10d",
"body": "…ixed 15s windows (#369) (#410)\n\n* Add VAD segmentation for sherpa transcription\n\n* fix(sherpa): empty-VAD returns silence, unpadded timestamps, clear VAD feature gate (review)\n\n* chore: sync release test count (sherpa vad-seg tests)",
"is_bot": false,
"headline": "feat(sherpa): VAD-based segmentation — speech boundaries instead of f…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T22:41:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d2bbd8146b8327cff753aa432187f28ddc7cc84",
"body": "…ad of crashing the recording sidecar (#408) (#409)\n\n* fix(core): fall back when ort silero init panics\n\n* chore: sync release test count (vad-ort fallback test)",
"is_bot": false,
"headline": "fix(core): ort-silero VAD init panic degrades to whisper-silero inste…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T21:30:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76036e338837f04280d61e552f6c5c9ff1967bda",
"body": "… insert mode) (#407)\n\nExisting users with destination = \"clipboard\" had no signal that dictation can\nnow type at the cursor — the feature was invisible to exactly the people who\nalready dictate. Add a 'Where dictated text goes' selector to the DICTATION\nsettings (insert vs clipboard) with a note ab\n[…]\noard fallback. Reuses the existing cmd_set_setting\ndictation/destination path; empty/unset shows as the compiled default (insert).\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(dictation): surface output destination in Settings (discoverable…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T21:26:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6b1441c7c6f52e5ac8403680a6a9928e9bd50073",
"body": "…#403)\n\n* Implement dictation v1 insertion pill\n\n* fix(dictation): clipboard changeCount discipline, verified paste target, session-true pill, raceless hold/tap, early permission honesty, reduced motion\n\n* chore: sync release test count\n\n* fix(ui): make Cmd/Ctrl+B work when the terminal or an input \n[…]\n.\nKeep only the modal/viewer-overlay suppression.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(dictation): v1 — insert-at-cursor + the four-state pill (#378) (…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T17:47:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "387b2a1c93b18fbec8d450379675785e71587544",
"body": "…collapse (#402)\n\n* feat(ui): add documents pane and calm viewer\n\n* review: scale-true padding, reduced-motion guard, instruction files read-only\n\n* fix(documents): close autosave + list races, selection/escape/shortcut guards, symlink scope (review findings)\n\n* docs(design): add Interaction craft s\n[…]\ne: keep notes.md out of the documents PR (unrelated release-notes staging)\n\n* chore: drop beads drift from documents PR\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(ui): Documents pane + calm markdown viewer + Cmd/Ctrl+B sidebar …",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T15:09:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "915e1bb8177173a4e9d783197c2545baef9e4430",
"body": "…ty (#369) (#399)\n\nReal-meeting A/B (75 min, posted on #369) shows the sherpa integration trails\nthe parakeet engine on segmentation, casing, and completeness. Recommending it\nin the README overstates the current state; re-promote once the integration\ngaps close.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: frame sherpa as experimental, not recommended, pending A/B pari…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T03:52:21Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c570743fa070954f023e033203a5956fc53ab885",
"body": "Replaces the single long-scroll settings panel with a tab bar\n(General / Capture / Transcription / AI & Privacy / Advanced),\nkeeping all existing section IDs intact so JS loadSettings() and\nRust commands are unaffected.\n\n- Pure wrapping approach: 5 `<div.settings-tab-panel>` wrappers\n around existi\n[…]\n2 (Windows) compatibility\n- ARIA tablist/tab/tabpanel + roving tabindex for keyboard nav\n- openSettings() resets to General tab on every open\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(ui): reorganize Settings into 5 tabs for faster navigation (#400)",
"author_name": "Maosuarez",
"author_login": "maosuarez",
"committed_at": "2026-07-03T03:52:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cc4fda83629d30939727ead2f3e829d924952f63",
"body": "…ds are self-contained (#369) (#398)\n\n* Fix sherpa dylib packaging\n\n* fix(core): scope sherpa static linking to macOS (Linux/Windows stay dynamic)\n\nsherpa-rs-sys's static feature panics in build.rs on Linux without a global\nRUSTFLAGS relocation hack, which would have broken CI's all-platform\nengine-\n[…]\ntays tied to the #369 release\ndecision (nothing distributes the feature yet).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(core): static sherpa linking on macOS — opt-in engine-sherpa buil…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-03T00:27:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6ce9b82bd8db8b4ac0fb4d13ea660ef36e98eb95",
"body": "…tures (#369, #395) (#397)\n\nLive verification on the maintainer machine right after #396: a default build\nwith these features produces artifacts that crash at launch. sherpa-rs and ort\nlink dynamic libraries (libsherpa-onnx-c-api.dylib, libonnxruntime.1.17.1.dylib)\nthat are neither bundled into the \n[…]\ncmake-gated DEFAULT is reverted.\n\nSherpa-in-app now has a concrete blocker: bundle the dylibs + set rpaths, or\nlink statically. Tracked on #369.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(scripts): revert engine-sherpa/vad-ort from default app-build fea…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-02T19:15:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "785216c2e5376a36f59b66a3dd14cd072ea0b80c",
"body": "…owngrade diagnostics (#395) (#396)\n\nProduction incident 2026-07-02: a live meeting shipped a garbled, sparse live\ntranscript while status reported healthy. Config had engine = \"sherpa\" (set up\nfor SOTA-stack testing in the dev app), but no app build could compile sherpa\n(the tauri crate did not exp\n[…]\neeting; patch\nported to current main, then fresh-context codex review found the dispatch\nblocker and the inherit/case + cmake issues fixed here.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(live): stop silent engine fallback in recording sidecar; honest d…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-02T18:25:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3b4c0311e888aa9409a89f2214ba2463896e3a9e",
"body": "…ters (#385) (#394)\n\nTurns the suggestion-only name-variant clusters (#390) into a durable, applied\nmerge. `minutes people merge <canonical> <variant...>` records a Person entry in\nthe vocabulary store; on graph rebuild the canonicalizer collapses every variant\nto the canonical slug and re-points me\n[…]\nNGES; all folded in: evidence-ranked\ncanonical, exact slug resolution, precise conflict recovery, testable rebuild,\npartial-success reporting).\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): `minutes people merge` confirm-merge for name-variant clus…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-02T05:29:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2120a49bfed5c18a7a8bf8a56414c47ed70e556a",
"body": "…on collapse (#392) (#393)\n\nWhen diarization collapses a multi-party meeting to <=1 rendered speaker, the\nsummarizer guesses assignees and empirically defaults to the recorder, silently\nINVERTING who owes whom. Guard: when a meeting had a diarization result but the\nrendered transcript shows <=1 real\n[…]\nl changes folded in: rendered-label\nsignal, diarization-result gate, trusted-attendee denominator, kind-scoped owner\nclearing, status degrade).\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(pipeline): withhold action-item/commitment assignees on diarizati…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-02T02:31:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "30498ee81286452c8f7d42b827512af37934ff4b",
"body": "…ustering (#385) (#390)\n\nSlice 0 entity-resolution eval harness (test-gated, synthetic) gating\nwrong_merges==0, full drift recall, and the clique property. New entity_cluster\nmodule: separator + same-first-letter single-edit predicate (ASCII-guarded, no\nDouble Metaphone), clique-based clustering (no\n[…]\nthree passes (design, impl, verify);\nfindings folded in (mixed-edge bridge, transitive drift chain, CJK over-match,\ndeterminism, eval realism).\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(graph): entity-resolution eval + suggestion-only name-variant cl…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-01T16:02:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a21f6d39aa04961beaafb3127070e80437a26dc2",
"body": "… (#388) (#389)\n\n* fix(name-correction): stop rewriting common words to look-alike names (#388)\n\nThe config-gated post-pass name corrector rewrote common English words in the\ntranscript body into unrelated proper nouns pulled from the whole-vault name\npool: work->York (x24), moat->Mat, line->Life, h\n[…]\n@anthropic.com>\n\n* chore: update Cargo.lock after dropping rphonetic (#388)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(name-correction): stop rewriting common words to look-alike names…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-01T15:35:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "161051b58ec26ec94ad0bf6d04a7c62a5a9aedb6",
"body": "…mapping health (#384) (#387)\n\nRecovery path for meetings that shipped with anonymous SPEAKER_n labels\nbecause Level-1 speaker mapping timed out, errored, or ran before attendees\nwere known. Re-runs just the mapping (no audio reprocessing) and records a\nspeaker_mapping health block in the frontmatte\n[…]\ngs fixed and\ncovered by tests (merge dedup and High-preservation, mixed-fence code blocks,\nglued-fence body preservation, non-meeting refusal).\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): `minutes redo-speaker-mapping` recovery command + speaker-…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-07-01T00:24:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "127b7c35eecc15ce8c5b93854cfe43860d502207",
"body": "…386)\n\nReal-vault data (#370 comment from @gtheys) showed person-entity contamination\nwell beyond the role/title suffixes #374 fixed. This handles two more classes on\nthe same two-layer mechanism (strip at extraction in pipeline::add_person_entity,\nheal on reindex in person_identity::normalize_entit\n[…]\nbel leak + garbage-name classes). Multi-person\nconcatenation and name-variant resolution remain tracked there for a designed pass.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(graph): strip speaker labels + gate non-person entities (#385) (#…",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-06-30T22:55:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f68bc77857891dc66a5b7c6c53e3e86459dbd04d",
"body": "* feat(ui): first pass at persistent UI font scaling w/keyboard shortcuts\n\nIntroduces `Cmd/Ctrl +/-/0` keyboard shortcuts to adjust the UI's base font size. The selected zoom level is saved to local storage, persisting across sessions.\n\nThis implements a scalable typography system using CSS custom \n[…]\nred-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Mat Silverstein <matsilverstein@gmail.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(ui): Persistent UI font scaling with keyboard shortcuts (#381)",
"author_name": "Sherri Alexander",
"author_login": "SherriAlexander",
"committed_at": "2026-06-30T03:25:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3c86be4de13bfba2cbbf83ac0687e9ba61b3a2e1",
"body": "… (#380)\n\n* feat(cli): add `minutes transcribe --json` for transcript-only output\n\nAdds a `minutes transcribe <file>` subcommand: audio in, transcript out,\nwith no meeting files written and no summarization. `--json` emits the\nstructured envelope from #376; plain text by default. `--diarize` is\nopt-\n[…]\nite/lib/release.ts: CLI command count 45 → 54 after adding `transcribe`\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): add `minutes transcribe --json` for transcript-only output…",
"author_name": "Maosuarez",
"author_login": "maosuarez",
"committed_at": "2026-06-30T00:39:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "463518c43604d5d3a92af80b95587f3aba78966b",
"body": "One person fragments into many knowledge-graph entities (reported by\n@gtheys in #367: junlei/junrei/junwei + role-suffix variants). This is the\nentity-level sibling of the Every Name Right epic: keep the PERSON right\nacross fragments, with wrong-merge-worse-than-split as the cardinal rule.\n\nResearch\n[…]\n as slice 1. Reviewed against the code: corrected the\nentity-construction layer (pipeline.rs, not knowledge_extract.rs) and the\nclustering predicate (names_likely_same needs a new phonetic/edit edge).",
"is_bot": false,
"headline": "docs(plans): person entity resolution proposal + SOTA eval design (#371)",
"author_name": "Mat Silverstein",
"author_login": "silverstein",
"committed_at": "2026-06-30T00:19:05Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 70,
"commits_last_year": 1297,
"latest_release_at": "2026-07-17T19:19:39Z",
"latest_release_tag": "v0.22.1",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 19,
"days_since_latest_release": 5,
"mean_days_between_releases": 3.9
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 57,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "minutes-cli",
"exists": true,
"license": "MIT",
"keywords": [
"ai",
"memory",
"whisper",
"transcription",
"meeting",
"command-line-utilities",
"multimedia::audio"
],
"ecosystem": "crates",
"matches_repo": true,
"registry_url": "https://crates.io/crates/minutes-cli",
"is_deprecated": false,
"latest_version": "0.22.1",
"repository_url": "https://github.com/silverstein/minutes",
"versions_count": 18,
"total_downloads": 728,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 151,
"first_published_at": "2026-03-24T18:22:32.223840Z",
"latest_published_at": "2026-07-17T19:47:38.691301Z",
"latest_version_yanked": false,
"days_since_latest_publish": 5
},
{
"name": "minutes-core",
"exists": true,
"license": "MIT",
"keywords": [
"ai",
"memory",
"whisper",
"transcription",
"meeting",
"command-line-utilities",
"multimedia::audio"
],
"ecosystem": "crates",
"matches_repo": true,
"registry_url": "https://crates.io/crates/minutes-core",
"is_deprecated": false,
"latest_version": "0.22.1",
"repository_url": "https://github.com/silverstein/minutes",
"versions_count": 18,
"total_downloads": 839,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 180,
"first_published_at": "2026-03-24T18:21:04.437176Z",
"latest_published_at": "2026-07-17T19:45:59.321188Z",
"latest_version_yanked": false,
"days_since_latest_publish": 5
},
{
"name": "minutes-mcp",
"exists": true,
"license": "MIT",
"keywords": [
"mcp",
"meeting",
"transcription",
"ai",
"claude",
"memory",
"conversation",
"whisper"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/minutes-mcp",
"is_deprecated": false,
"latest_version": "0.22.1",
"repository_url": "https://github.com/silverstein/minutes",
"versions_count": 62,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1970,
"first_published_at": "2026-03-23T05:29:49.784000Z",
"latest_published_at": "2026-07-17T19:44:08.454000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "minutes-sdk",
"exists": true,
"license": "MIT",
"keywords": [
"meeting",
"transcription",
"memory",
"ai",
"agent",
"mcp",
"claude",
"langchain",
"conversation",
"whisper"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/minutes-sdk",
"is_deprecated": false,
"latest_version": "0.22.1",
"repository_url": "https://github.com/silverstein/minutes",
"versions_count": 61,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 2352,
"first_published_at": "2026-03-23T05:29:38.285000Z",
"latest_published_at": "2026-07-17T19:43:57.274000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "whisper-guard",
"exists": true,
"license": "MIT",
"keywords": [
"audio",
"speech",
"whisper",
"transcription",
"hallucination",
"multimedia::audio",
"text-processing"
],
"ecosystem": "crates",
"matches_repo": true,
"registry_url": "https://crates.io/crates/whisper-guard",
"is_deprecated": false,
"latest_version": "0.3.0",
"repository_url": "https://github.com/silverstein/minutes",
"versions_count": 6,
"total_downloads": 2332,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 689,
"first_published_at": "2026-03-27T18:56:16.343453Z",
"latest_published_at": "2026-05-14T23:08:39.905547Z",
"latest_version_yanked": false,
"days_since_latest_publish": 69
}
]
},
"popularity": {
"forks": 143,
"stars": 1372,
"watchers": 2,
"fork_history": {
"days": [
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-21",
"count": 7
},
{
"date": "2026-03-23",
"count": 2
},
{
"date": "2026-03-24",
"count": 2
},
{
"date": "2026-03-25",
"count": 3
},
{
"date": "2026-03-26",
"count": 2
},
{
"date": "2026-03-27",
"count": 9
},
{
"date": "2026-03-28",
"count": 9
},
{
"date": "2026-03-29",
"count": 12
},
{
"date": "2026-03-30",
"count": 10
},
{
"date": "2026-03-31",
"count": 10
},
{
"date": "2026-04-01",
"count": 8
},
{
"date": "2026-04-02",
"count": 3
},
{
"date": "2026-04-03",
"count": 3
},
{
"date": "2026-04-04",
"count": 2
},
{
"date": "2026-04-05",
"count": 2
},
{
"date": "2026-04-06",
"count": 3
},
{
"date": "2026-04-07",
"count": 4
},
{
"date": "2026-04-08",
"count": 2
},
{
"date": "2026-04-09",
"count": 3
},
{
"date": "2026-04-11",
"count": 2
},
{
"date": "2026-04-12",
"count": 3
},
{
"date": "2026-04-14",
"count": 2
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-16",
"count": 2
},
{
"date": "2026-04-17",
"count": 2
},
{
"date": "2026-04-19",
"count": 1
},
{
"date": "2026-04-21",
"count": 1
},
{
"date": "2026-04-24",
"count": 1
},
{
"date": "2026-04-25",
"count": 1
},
{
"date": "2026-04-27",
"count": 1
},
{
"date": "2026-04-28",
"count": 1
},
{
"date": "2026-04-30",
"count": 1
},
{
"date": "2026-05-04",
"count": 1
},
{
"date": "2026-05-11",
"count": 2
},
{
"date": "2026-05-12",
"count": 1
},
{
"date": "2026-05-13",
"count": 1
},
{
"date": "2026-05-17",
"count": 1
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-21",
"count": 2
},
{
"date": "2026-05-22",
"count": 2
},
{
"date": "2026-05-23",
"count": 3
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-06-08",
"count": 1
},
{
"date": "2026-06-12",
"count": 1
},
{
"date": "2026-06-17",
"count": 1
},
{
"date": "2026-06-24",
"count": 1
},
{
"date": "2026-06-27",
"count": 1
},
{
"date": "2026-07-01",
"count": 1
},
{
"date": "2026-07-03",
"count": 1
},
{
"date": "2026-07-07",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-19",
"count": 1
},
{
"date": "2026-07-21",
"count": 1
},
{
"date": "2026-07-22",
"count": 1
}
],
"complete": true,
"collected": 143,
"total_forks": 143
},
"star_history": null,
"open_issues_and_prs": 32
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": true,
"has_dockerfile": false,
"has_mcp_signal": true,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": true,
"typecheck_configs": [
"crates/mcp/tsconfig.json",
"crates/sdk/tsconfig.json",
"docs/demo-video/tsconfig.json",
"docs/demo/tsconfig.json",
"site/tsconfig.json",
"tooling/skills/tsconfig.json"
],
"toolchain_manifests": [
"Cargo.toml",
"crates/cli/Cargo.toml",
"crates/core/Cargo.toml",
"crates/reader/Cargo.toml",
"crates/whisper-guard/Cargo.toml",
"sidecars/diarize-streaming/Cargo.toml",
"tauri/src-tauri/Cargo.toml"
],
"largest_source_bytes": 688247,
"source_files_sampled": 313,
"oversized_source_files": 24,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 25923
},
"dependencies": {
"manifests": [
"Cargo.toml",
"site/package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"crates",
"npm"
],
"dependencies": [
{
"name": "@react-three/drei",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^10.7.7"
},
{
"name": "@react-three/fiber",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^9.5.0"
},
{
"name": "@remotion/player",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.446"
},
{
"name": "@types/three",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^0.183.1"
},
{
"name": "@vercel/analytics",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^2.0.1"
},
{
"name": "geist",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^1.4.1"
},
{
"name": "next",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^16.2.3"
},
{
"name": "react",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^19.2.5"
},
{
"name": "react-dom",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^19.2.5"
},
{
"name": "remotion",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.446"
},
{
"name": "three",
"manifest": "site/package.json",
"ecosystem": "npm",
"version_constraint": "^0.183.2"
},
{
"name": "minutes-core",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.22.1"
},
{
"name": "clap",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ctrlc",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "anyhow",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "tracing",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "tracing-subscriber",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde_json",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "chrono",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "hound",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "dirs",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "schemars",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde_yaml",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ureq",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "csv",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "walkdir",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "pyannote-rs",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ort",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "=2.0.0-rc.10"
},
{
"name": "symphonia",
"manifest": "crates/cli/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde_json",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde_yaml",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "toml",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "chrono",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "thiserror",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "dirs",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "walkdir",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "which",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "tracing",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "cpal",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "hound",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "notify",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "whisper-rs",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "symphonia",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ureq",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "fs2",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "schemars",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "crossbeam-channel",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "crossbeam-queue",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "getrandom",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "interprocess",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "pyannote-rs",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ort",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ndarray",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "whisper-guard",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.3.0"
},
{
"name": "nnnoiseless",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "base64",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.22"
},
{
"name": "rusqlite",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "tempfile",
"manifest": "crates/core/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "3"
},
{
"name": "@modelcontextprotocol/ext-apps",
"manifest": "crates/mcp/package.json",
"ecosystem": "npm",
"version_constraint": "^1.6.0"
},
{
"name": "@modelcontextprotocol/sdk",
"manifest": "crates/mcp/package.json",
"ecosystem": "npm",
"version_constraint": "^1.29.0"
},
{
"name": "minutes-sdk",
"manifest": "crates/mcp/package.json",
"ecosystem": "npm",
"version_constraint": "0.22.1"
},
{
"name": "yaml",
"manifest": "crates/mcp/package.json",
"ecosystem": "npm",
"version_constraint": "^2.8.3"
},
{
"name": "zod",
"manifest": "crates/mcp/package.json",
"ecosystem": "npm",
"version_constraint": "^3.25 || ^4.0"
},
{
"name": "serde",
"manifest": "crates/reader/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde_json",
"manifest": "crates/reader/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "serde_yaml",
"manifest": "crates/reader/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "chrono",
"manifest": "crates/reader/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "walkdir",
"manifest": "crates/reader/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "schemars",
"manifest": "crates/reader/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "yaml",
"manifest": "crates/sdk/package.json",
"ecosystem": "npm",
"version_constraint": "^2.8.3"
},
{
"name": "tracing",
"manifest": "crates/whisper-guard/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1"
},
{
"name": "whisper-rs",
"manifest": "crates/whisper-guard/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.16"
},
{
"name": "serde",
"manifest": "crates/whisper-guard/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "@modelcontextprotocol/sdk",
"manifest": "integrations/claude-cowork-extension/package.json",
"ecosystem": "npm",
"version_constraint": "^1.29.0"
},
{
"name": "zod",
"manifest": "integrations/claude-cowork-extension/package.json",
"ecosystem": "npm",
"version_constraint": "^4.3.6"
},
{
"name": "parakeet-rs",
"manifest": "sidecars/diarize-streaming/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.3.6"
},
{
"name": "serde_json",
"manifest": "sidecars/diarize-streaming/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "tauri",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "tauri-plugin-shell",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "tauri-plugin-global-shortcut",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "tauri-plugin-dialog",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "tauri-plugin-notification",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "notify-rust",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "4.12.0"
},
{
"name": "serde",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "serde_json",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1"
},
{
"name": "serde_yaml",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "minutes-core",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "chrono",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.4"
},
{
"name": "dirs",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "6"
},
{
"name": "libc",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.2"
},
{
"name": "which",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "portable-pty",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.9"
},
{
"name": "base64",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.22"
},
{
"name": "futures-util",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.3"
},
{
"name": "minisign-verify",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.2"
},
{
"name": "reqwest",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.12"
},
{
"name": "tauri-plugin-pty",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1"
},
{
"name": "tauri-plugin-autostart",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "tauri-plugin-updater",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "tauri-plugin-window-state",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "walkdir",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "ureq",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "window-vibrancy",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.7"
},
{
"name": "notify",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "7"
},
{
"name": "tracing",
"manifest": "tauri/src-tauri/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 1,
"merged_prs": 309,
"open_issues": 31,
"closed_ratio": 0.814,
"closed_issues": 136,
"closed_unmerged_prs": 28
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "silverstein",
"commits": 1213,
"avatar_url": "https://avatars.githubusercontent.com/u/4837632?v=4"
},
{
"type": "User",
"login": "gregoire22enpc",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/23221802?v=4"
},
{
"type": "User",
"login": "maosuarez",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/140128662?v=4"
},
{
"type": "User",
"login": "cathrynlavery",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/50469282?v=4"
},
{
"type": "User",
"login": "claude",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/81847?v=4"
},
{
"type": "User",
"login": "mwolson",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/1510193?v=4"
},
{
"type": "User",
"login": "calebchongc",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/6571888?v=4"
},
{
"type": "User",
"login": "gtheys",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/527237?v=4"
},
{
"type": "User",
"login": "rymalia",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/705882?v=4"
},
{
"type": "User",
"login": "czlonkowski",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/56956555?v=4"
}
],
"contributors_sampled": 23,
"top_contributor_share": 0.94
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"coach-model-eval.yml",
"lint-workflows.yml",
"release-cli.yml",
"release-macos.yml",
"release-publish.yml",
"release-windows-desktop.yml",
"signed-dev-acceptance.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Cargo.lock",
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 8,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 3,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 1/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 4 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 2,
"reason": "dependency not pinned by hash detected -- score normalized to 2",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 8,
"reason": "5 out of the last 5 releases have a total of 5 signed artifacts.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "82 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "3b13375e14897a575ddfcdd9cbcc6367f709b73d",
"ran_at": "2026-07-23T02:09:09Z",
"aggregate_score": 4.3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-21T23:37:29Z",
"oldest_open_prs": [
{
"number": 518,
"created_at": "2026-07-22T14:51:43Z",
"last_comment_at": "2026-07-22T14:51:46Z",
"last_comment_author": "vercel"
}
],
"last_merged_pr_at": "2026-07-21T23:11:38Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 63,
"created_at": "2026-04-02T14:54:18Z",
"last_comment_at": "2026-07-03T03:52:41Z",
"last_comment_author": "silverstein"
},
{
"number": 64,
"created_at": "2026-04-02T14:54:24Z",
"last_comment_at": "2026-04-03T14:06:00Z",
"last_comment_author": "silverstein"
},
{
"number": 124,
"created_at": "2026-04-16T12:44:54Z",
"last_comment_at": "2026-06-25T23:21:38Z",
"last_comment_author": "silverstein"
},
{
"number": 162,
"created_at": "2026-04-21T17:18:06Z",
"last_comment_at": "2026-06-11T20:27:13Z",
"last_comment_author": "silverstein"
},
{
"number": 163,
"created_at": "2026-04-21T17:51:44Z",
"last_comment_at": "2026-05-13T04:58:53Z",
"last_comment_author": "silverstein"
},
{
"number": 169,
"created_at": "2026-04-22T16:45:10Z",
"last_comment_at": "2026-05-20T05:40:46Z",
"last_comment_author": "silverstein"
},
{
"number": 183,
"created_at": "2026-04-23T17:48:31Z",
"last_comment_at": "2026-04-23T18:02:52Z",
"last_comment_author": "silverstein"
},
{
"number": 184,
"created_at": "2026-04-23T19:45:04Z",
"last_comment_at": "2026-04-29T19:49:48Z",
"last_comment_author": "silverstein"
},
{
"number": 244,
"created_at": "2026-05-13T16:33:06Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 245,
"created_at": "2026-05-13T16:35:25Z",
"last_comment_at": "2026-06-11T20:27:11Z",
"last_comment_author": "silverstein"
},
{
"number": 253,
"created_at": "2026-05-21T20:10:06Z",
"last_comment_at": "2026-05-22T22:15:03Z",
"last_comment_author": "silverstein"
},
{
"number": 265,
"created_at": "2026-05-31T06:55:47Z",
"last_comment_at": "2026-06-11T16:27:18Z",
"last_comment_author": "silverstein"
},
{
"number": 267,
"created_at": "2026-06-01T10:40:44Z",
"last_comment_at": "2026-06-02T15:29:27Z",
"last_comment_author": "silverstein"
},
{
"number": 268,
"created_at": "2026-06-01T10:42:41Z",
"last_comment_at": "2026-06-02T15:29:31Z",
"last_comment_author": "silverstein"
},
{
"number": 286,
"created_at": "2026-06-09T00:49:49Z",
"last_comment_at": "2026-07-02T17:30:36Z",
"last_comment_author": "silverstein"
},
{
"number": 305,
"created_at": "2026-06-11T20:26:17Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 318,
"created_at": "2026-06-12T16:16:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 362,
"created_at": "2026-06-25T05:41:00Z",
"last_comment_at": "2026-07-17T21:28:53Z",
"last_comment_author": "silverstein"
},
{
"number": 369,
"created_at": "2026-06-26T05:34:07Z",
"last_comment_at": "2026-07-03T22:14:00Z",
"last_comment_author": "silverstein"
},
{
"number": 373,
"created_at": "2026-06-27T19:25:17Z",
"last_comment_at": "2026-07-08T19:29:56Z",
"last_comment_author": "silverstein"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/silverstein/minutes",
"host": "github.com",
"name": "minutes",
"owner": "silverstein"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"security": 43,
"vitality": 85,
"community": 68,
"governance": 64,
"engineering": 81
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 85,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"commits_last_year": 1297,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 19
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "19/52 weeks with commits",
"points": 13.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 19
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "1297 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 1297
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"releases_count": 70,
"latest_release_tag": "v0.22.1",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 3.9
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "70 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 70
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~3.9 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 3.9
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "5 out of the last 5 releases have a total of 5 signed artifacts.",
"points": 8,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 68,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"forks": 143,
"stars": 1372,
"watchers": 2,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1,372 stars",
"points": 50.9,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 1372
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "143 forks",
"points": 17.9,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 143
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "2 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 2
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 62,
"inputs": {
"packages": [
"minutes-cli",
"minutes-core",
"minutes-mcp",
"minutes-sdk",
"whisper-guard"
],
"dependents": null,
"ecosystems": "crates, npm",
"total_downloads": 3899,
"monthly_downloads": 5342
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "5,342 downloads/month across crates, npm",
"points": 49.7,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 5342,
"ecosystems": "crates, npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 64,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 34,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 23,
"top_contributor_share": 0.94
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 94% of commits",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 94
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "23 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 23
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 4 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"merged_prs": 309,
"open_issues": 31,
"closed_issues": 136,
"issue_closed_ratio": 0.814,
"closed_unmerged_prs": 28
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "81% of issues closed",
"points": 38.1,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 81
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "309/337 decided PRs merged",
"points": 35.1,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 309,
"decided": 337
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 1/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 61,
"inputs": {
"followers": 177,
"owner_type": "User",
"is_verified": null,
"owner_login": "silverstein",
"public_repos": 25,
"account_age_days": 4774
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "177 followers of silverstein",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 177,
"login": "silverstein"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "25 public repos, account ~13 yr old",
"points": 22.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 25
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"minutes-cli",
"minutes-core",
"minutes-mcp",
"minutes-sdk",
"whisper-guard"
],
"ecosystems": "crates, npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "5 package(s) on crates, npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 5,
"ecosystems": "crates, npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "62 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 62
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 81,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "8 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 8
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"agent-skills",
"meetings",
"ai",
"claude",
"mcp",
"meeting-notes",
"privacy",
"rust",
"speech-to-text",
"transcription",
"voice-memo",
"whisper",
"parakeet"
],
"has_wiki": true,
"homepage": "https://useminutes.app",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://useminutes.app",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "13 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 13
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 43,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": null,
"notes": [],
"value": 43,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 18,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 0,
"scorecard_aggregate": 4.3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 1/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 4 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 2",
"points": 1,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "5 out of the last 5 releases have a total of 5 signed artifacts.",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "82 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 4
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 81,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"has_llms_txt": true,
"legible_history_share": 0.99,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 25923
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": "llms.txt present",
"points": 15,
"status": "met",
"details": [
{
"code": "llms_txt_present",
"params": {}
}
],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "99 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 99,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Cargo.lock",
"package-lock.json"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": true,
"has_linter_config": false,
"typecheck_configs": [
"crates/mcp/tsconfig.json",
"crates/sdk/tsconfig.json",
"docs/demo-video/tsconfig.json",
"docs/demo/tsconfig.json",
"site/tsconfig.json",
"tooling/skills/tsconfig.json"
],
"agent_commit_share": 0.76,
"toolchain_manifests": [
"Cargo.toml",
"crates/cli/Cargo.toml",
"crates/core/Cargo.toml",
"crates/reader/Cargo.toml",
"crates/whisper-guard/Cargo.toml",
"sidecars/diarize-streaming/Cargo.toml",
"tauri/src-tauri/Cargo.toml"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Cargo.toml, crates/cli/Cargo.toml, crates/core/Cargo.toml (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "Cargo.toml, crates/cli/Cargo.toml, crates/core/Cargo.toml"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "crates/mcp/tsconfig.json, crates/sdk/tsconfig.json, docs/demo-video/tsconfig.json, docs/demo/tsconfig.json, site/tsconfig.json, tooling/skills/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "crates/mcp/tsconfig.json, crates/sdk/tsconfig.json, docs/demo-video/tsconfig.json, docs/demo/tsconfig.json, site/tsconfig.json, tooling/skills/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "devcontainer, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "devcontainer, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "76 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 76,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 2",
"points": 2,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 96,
"inputs": {
"primary_language": "Rust",
"largest_source_bytes": 688247,
"source_files_sampled": 313,
"oversized_source_files": 24
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Rust (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Rust"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "24/313 source files over 60KB",
"points": 50.8,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 313,
"oversized": 24
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "moderate",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": true,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"Could not fetch crates package 'minutes-reader' from its registry",
"Could not fetch crates package 'minutes-app' from its registry",
"Could not fetch crates package 'minutes-diarize-sidecar' from its registry",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"deps.dev does not index crates:minutes-cli@0.22.1; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-23T02:09:33.350872Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/silverstein/minutes.svg",
"full_name": "silverstein/minutes",
"license_state": "standard",
"license_spdx": "MIT"
}