• Joined on 2026-03-27
mathias pushed to feat/mcp-destructive-guard at mathias/skills 2026-10-01 18:37:48 +00:00
9ba7cb2dcd feat(hooks): mcp-destructive-guard asks before irreversible MCP verbs
mathias pushed tag v0.16.0 to mathias/gitea-mcp 2026-10-01 18:35:01 +00:00
mathias pushed to main at mathias/gitea-mcp 2026-10-01 18:35:01 +00:00
724a997002 feat(mcp): audit-log every tools/call (OWASP MCP08)
mathias closed issue mathias/gitea-mcp#64 2026-10-01 18:35:01 +00:00
tools/call is not audit-logged — only auth acceptance is (OWASP MCP08)
mathias opened issue mathias/hyperguild#146 2026-10-01 18:33:25 +00:00
brain-mcp: per-client bearer tokens instead of one shared token (split from #144)
mathias commented on issue mathias/hyperguild#144 2026-10-01 18:33:20 +00:00
brain-mcp: one shared bearer for every client, no per-caller read scoping (OWASP MCP07/MCP10)

Decision (Mathias, 2026-10-01): the brain does NOT hold confidential client content

So read-path wing scoping is not needed. Consequences:

  • CLAUDE.md claim ("client projects filter to…
mathias commented on issue mathias/hyperguild#145 2026-10-01 18:33:14 +00:00
brain_write is an ungated persistent prompt-injection path into every future session (OWASP MCP06)

Decision (Mathias, 2026-10-01): provenance tag, no staging

Non-breaking: agents keep writing learnings without a human step; readers can see where an entry came from and discount it.

Spec…

mathias opened issue mathias/tapir#40 2026-10-01 17:46:01 +00:00
Add iguana/pianissimo as a second local transcription backend (middle tier, or run both)
mathias pushed to feat/33-audio-upload-transcript at mathias/tapir 2026-10-01 17:45:57 +00:00
ebc6cc3ff8 docs(research): kb-whisper vs pianissimo on one real hour of Swedish speech
mathias pushed to feat/33-audio-upload-transcript at mathias/tapir 2026-10-01 17:35:34 +00:00
d11afb5ff1 fix(transcribe): rebuild the transcript from segments so split words are whole
500e11962b test(transcribe): rebuild Text from segments so a split word is not broken (red)
206fc2f5ca feat(web): log upload rejections by reason only
5368d5f8c2 test(web): a rejected upload is logged with its reason, never the filename or title (red)
Compare 4 commits »
mathias commented on pull request mathias/tapir#39 2026-10-01 17:14:48 +00:00
feat: upload audio, get a private Swedish transcript, discuss it (#33, ADR-033)

Scope change since the description above was written (details on #33): a file with a video track is now accepted, its audio used and the video discarded, with a notice on the page and a…

mathias commented on issue mathias/tapir#33 2026-10-01 17:14:46 +00:00
Upload an audio recording, get a Swedish transcript, discuss it (audio-only subset of #28)

Scope change: a video track is accepted, the audio is used, the user is told

This issue's scope said "Audio formats only … reject video with a message saying video is #28." The first real…

mathias pushed to feat/33-audio-upload-transcript at mathias/tapir 2026-10-01 16:44:15 +00:00
365dff5c85 docs(data-model): had_video
adaaa9918f test(acceptance): map the video-track scenarios to their covering tests
364a28eecd docs(use-cases): a video track is accepted and the user is told; no-audio is rejected
1fa7ca3a8c test(e2e): a video file (camera-off Teams meeting) is transcribed and the user is told
cca0a7461b feat(web): tell the user when a video track was ignored, in every state
Compare 17 commits »
mathias opened issue mathias/hyperguild#145 2026-10-01 16:34:51 +00:00
brain_write is an ungated persistent prompt-injection path into every future session (OWASP MCP06)
mathias opened issue mathias/hyperguild#144 2026-10-01 16:34:43 +00:00
brain-mcp: one shared bearer for every client, no per-caller read scoping (OWASP MCP07/MCP10)
mathias opened issue mathias/gitea-mcp#64 2026-10-01 16:34:36 +00:00
tools/call is not audit-logged — only auth acceptance is (OWASP MCP08)
mathias created pull request mathias/tapir#39 2026-10-01 15:14:50 +00:00
feat: upload audio, get a private Swedish transcript, discuss it (#33, ADR-033)
mathias pushed to feat/33-audio-upload-transcript at mathias/tapir 2026-10-01 15:14:34 +00:00
6ebb4e49e9 test(audio): opt-in live ffprobe check on hostile playlists and real audio
291a360a83 feat(audio): restrict ffmpeg/ffprobe input to local files and audio demuxers
4a0c51d877 test(audio): attacker-supplied input must not steer ffmpeg to other files or URLs (red)
Compare 3 commits »
mathias commented on issue mathias/tapir#33 2026-10-01 15:09:51 +00:00
Upload an audio recording, get a Swedish transcript, discuss it (audio-only subset of #28)

Corrections to this issue, found while building it

Branch feat/33-audio-upload-transcript (PR to follow). Four statements here turned out to be wrong or incomplete; each is recorded in…

mathias opened issue mathias/tapir#38 2026-10-01 15:09:44 +00:00
Unmeasured limits behind #33: >90 min, concurrent jobs, berget at length, real speech, Metal OOM