2025-10-14 - 2026-10-14

Overview

58 Active Pull Requests
140 Active Issues
Excluding merges, 2 authors have pushed 314 commits to main and 494 commits to all branches. On main, 362 files have changed and there have been 60836 additions and 8746 deletions.

40 Releases published by 1 user

Published v0.24.0 2026-10-05 17:52:07 +00:00

Published v0.23.1 2026-10-05 07:26:10 +00:00

Published v0.23.0 2026-10-05 05:00:07 +00:00

Published v0.22.0 2026-10-04 06:37:09 +00:00

Published v0.21.1 2026-10-04 06:03:05 +00:00

Published v0.21.0 2026-10-03 19:42:17 +00:00

Published v0.20.1 2026-10-03 15:32:36 +00:00

Published v0.20.0 2026-10-03 15:26:19 +00:00

Published v0.19.1 2026-10-03 14:42:42 +00:00

Published v0.19.0 2026-10-01 21:10:07 +00:00

Published v0.18.4 2026-09-30 14:08:27 +00:00

Published v0.18.3 2026-09-17 05:10:25 +00:00

Published v0.18.2 2026-09-16 22:08:44 +00:00

Published v0.18.1 2026-09-16 21:59:47 +00:00

Published v0.18.0 2026-09-16 21:58:09 +00:00

Published v0.17.0 2026-09-15 06:10:01 +00:00

Published v0.16.1 2026-09-05 09:36:52 +00:00

Published v0.16.0 2026-08-22 11:58:15 +00:00

Published v0.15.0 2026-08-22 06:22:10 +00:00

Published v0.14.0 2026-08-18 18:41:01 +00:00

Published v0.13.2 2026-07-27 20:36:19 +00:00

Published v0.13.1 2026-07-27 12:40:03 +00:00

Published v0.13.0 2026-07-09 06:57:38 +00:00

Published v0.12.1 2026-07-09 06:34:31 +00:00

Published v0.12.0 2026-07-07 20:00:56 +00:00

Published v0.11.2 2026-07-07 09:36:01 +00:00

Published icebox/cmd-routing-2026-07-01 2026-07-01 11:20:06 +00:00

Published v0.11.1 2026-06-30 20:15:15 +00:00

Published v0.11.0 2026-06-23 05:28:34 +00:00

Published v0.10.0 2026-05-20 11:29:44 +00:00

Published v0.9.0 2026-05-20 06:36:51 +00:00

Published v0.8.0 2026-05-19 20:00:05 +00:00

Published v0.7.0 2026-05-19 19:31:41 +00:00

Published v0.6.0 2026-05-18 13:19:31 +00:00

Published v0.5.0 2026-04-24 09:16:06 +00:00

Published v0.4.1 2026-04-24 06:49:39 +00:00

Published v0.4.0 2026-04-23 17:55:37 +00:00

Published v0.3.0 2026-04-20 10:28:44 +00:00

Published v0.2.0 2026-04-19 16:56:29 +00:00

Published v0.1.0 2026-04-19 05:47:55 +00:00

55 Pull requests merged by 1 user

Merged #201 chore(context): restore the root rules in AGENTS.md and system-prompt.txt (#200) 2026-10-09 06:02:43 +00:00

Merged #189 fix: creating and generated writes go through the brain root (#188, #158 part A) 2026-10-05 21:25:54 +00:00

Merged #191 fix(linkcheck): keep the write when the link index cannot be built (#178) 2026-10-05 21:16:04 +00:00

Merged #190 fix(symlinkguard): report and remove FIFOs, sockets and devices too (#179) 2026-10-05 21:15:57 +00:00

Merged #187 fix(brainfs): refuse a file behind a symlinked directory for reads and writes (#173) 2026-10-05 20:17:37 +00:00

Merged #186 fix(tunnel): DetectTunnels walks and reads through brainfs (#174, #157 slice 5b) 2026-10-05 20:12:45 +00:00

Merged #172 test(brainfs): per-caller in-brain symlink targets for slices 1-3 (#171) 2026-10-05 19:36:31 +00:00

Merged #176 fix(pipeline,classification): read the brain through brainfs (#157, slice 6) 2026-10-05 18:54:42 +00:00

Merged #170 fix: brain_tunnel, brain_update and session_log confine caller-supplied paths (#169) 2026-10-05 18:47:07 +00:00

Merged #183 fix(ingestion): build /mcp's bearer and the metrics wrap inside buildMux (#154) 2026-10-05 17:48:44 +00:00

Merged #180 fix(symlinkguard): deliver alerts beside the scan, not inside it (#164) 2026-10-05 14:48:16 +00:00

Merged #181 fix(ingestion): bump mcp-chassis to v0.7.1; label refused REST requests by route (#155) 2026-10-05 14:40:20 +00:00

Merged #175 fix(brain): wing indexes and the link check read through brainfs (#157, slice 5a) 2026-10-05 07:26:12 +00:00

Merged #168 fix(graph,wiki): read the brain through brainfs (#157, slice 4) 2026-10-05 04:53:34 +00:00

Merged #166 fix(vectorstore): walk and read the brain through brainfs (#157, slice 3) 2026-10-04 06:35:17 +00:00

Merged #165 fix(brain): context, brain_get and brain_read read through brainfs (#157, slice 2) 2026-10-04 05:59:55 +00:00

Merged #161 fix(search): walk and read the brain through an os.Root (#157, slice 1) 2026-10-03 19:34:46 +00:00

Merged #160 feat(ingestion): runtime symlink tripwire removes what it finds, 30s scans (#157) 2026-10-03 19:34:19 +00:00

Merged #156 fix(ingestion): brain/raw/ readers go through an os.Root; symlinks are inert (#153) 2026-10-03 15:30:49 +00:00

Merged #159 feat(ingestion): symlink tripwire for the Syncthing-shared brain dir (#157) 2026-10-03 15:23:06 +00:00

Merged #152 fix(ingestion): authenticate the REST API; confine ingest paths to brain/raw/ (#149) 2026-10-03 14:38:07 +00:00

Merged #147 feat(brain): tool-call audit log (#144) + server-owned write provenance (#145) 2026-10-01 21:06:36 +00:00

Merged #139 fix(frontmatter): consolidate 3 independent fence-parsers into one 2026-09-23 13:07:32 +00:00

Merged #140 feat(server): say at startup when alerting is unconfigured (#107) 2026-09-23 13:02:40 +00:00

Merged #136 fix(mcp): validate the claim envelope before brain_edit writes too 2026-09-23 10:28:08 +00:00

Merged #137 fix(api): UpdateNote reserves updated_at/supersedes/supersede_reason from the caller's fragment 2026-09-23 08:18:30 +00:00

Merged #135 fix(api): frontmatter parser must not misparse indented list items as keys 2026-09-23 08:12:06 +00:00

Merged #133 feat(brain): add brain_reject — the missing third option for raw/ notes 2026-09-23 06:06:35 +00:00

Merged #132 feat(pipeline): feed the current source page into the extraction prompt (#106) 2026-09-23 05:45:47 +00:00

Merged #131 chore(brain): remove brain_write legacy params domain/type/knowledge-path (ADR-0012) 2026-09-23 05:43:28 +00:00

Merged #129 feat(pipeline): report when a re-ingest disagrees with the page on disk (#104) 2026-09-23 05:22:28 +00:00

Merged #126 feat(pipeline): skip extraction when the source has not changed (#105) 2026-09-23 05:09:30 +00:00

Merged #103 feat(pipeline): ingest revises the existing page instead of clobbering it 2026-09-22 21:43:04 +00:00

Merged #124 Brain-quality sweep, batch 1: brain_edit/brain_update correctness + close-session docs 2026-09-22 21:27:11 +00:00

Merged #121 fix(taskfile): remove build targets for binaries deleted months ago, and make check build 2026-09-16 22:36:49 +00:00

Merged #119 fix(config): delete the model-routing chain — nothing has called it since April 2026-09-16 22:24:47 +00:00

Merged #102 feat(brain): validate the claim-property envelope on write (brain#21) 2026-08-22 08:58:34 +00:00

Merged #99 docs: name brain-mcp and say where its code lives (#94) 2026-08-22 06:10:06 +00:00

Merged #98 feat(mcp): record and alert on a governance-file rewrite (#97) 2026-08-22 06:09:53 +00:00

Merged #96 feat(mcp): brain_read + brain_edit, contained to the sync source (brain#4) 2026-08-18 18:14:05 +00:00

Merged #95 fix(capture): name what escalated the classification in an I1 refusal (#91 part 1) 2026-08-18 18:13:48 +00:00

Merged #76 Consolidate to single harness: icebox cmd/routing, keep cmd/hyperguild + ingestion (#75) 2026-07-01 16:27:06 +00:00

Merged #70 feat: brain_pending + brain_promote — close the raw→wiki curation loop (#38) 2026-06-26 14:49:28 +00:00

Merged #69 docs(close-session): refresh classification gate post-#67 (#62) 2026-06-26 14:28:49 +00:00

Merged #68 fix: wire ai-sessions SummaryWriter into the capture relay (#66) 2026-06-23 15:22:42 +00:00

Merged #61 feat: capture relay — MCP capture tool for non-library harnesses (#55, capture 49f) 2026-06-23 05:26:55 +00:00

Merged #60 feat: I5 audit path + classification-aware degradation (#54, capture 49e) 2026-06-22 21:57:52 +00:00

Merged #59 feat: POST /capture REST adapter + OAuth2 + I1 sovereignty gate (#53, capture 49d) 2026-06-22 21:44:14 +00:00

Merged #58 feat: Gitea IssueTracker client + inject into brain server (#52, capture 49c) 2026-06-22 21:32:02 +00:00

Merged #57 feat: CaptureService use-case + BrainStore extraction (#51, capture 49b) 2026-06-22 21:31:47 +00:00

Merged #56 feat: capture classification taxonomy + per-wing/repo tags (#50, capture 49a) 2026-06-22 21:31:18 +00:00

Merged #48 chore(context): drop unsupported cursor + aider adapters 2026-06-22 09:03:59 +00:00

Merged #46 feat: brain_update supersede verb + brain_get / brain_write read-after-write handle (#45) 2026-06-22 08:59:28 +00:00

Merged #4 refactor(routing): rename local/claude to fast/thinking model pair 2026-05-08 14:43:29 +00:00

Merged #3 chore(mcp): switch MCP endpoints to HTTPS domain URLs 2026-05-08 14:43:18 +00:00

3 Pull requests proposed by 2 users

110 Issues closed from 2 users

Closed #200 chore(context): restore the root rules in AGENTS.md and system-prompt.txt (project-only since 10-08) 2026-10-09 06:02:43 +00:00

Closed #185 ingestion metrics: an authenticated request to an unregistered path is labelled with the raw URL path (unbounded series) 2026-10-05 21:42:48 +00:00

Closed #193 symlinkguard: Watch alert-queue tests flake under -race and CPU load 2026-10-05 21:33:56 +00:00

Closed #163 ntfy notifier hard-codes the title "brain-capture audit degraded" for every alert 2026-10-05 21:28:40 +00:00

Closed #188 brain_write follows a symlinked wing directory, including one that points outside the brain 2026-10-05 21:25:54 +00:00

Closed #178 brain_write loses the learning when any subdirectory under knowledge/ or wiki/ is unreadable 2026-10-05 21:16:04 +00:00

Closed #179 symlinkguard ignores FIFOs and other special files: a planted FIFO classification.yaml crash-loops the pod 2026-10-05 21:15:57 +00:00

Closed #157 SECURITY: symlinks anywhere in the Syncthing-shared brain dir are followed by search, vectorstore, context and graph readers 2026-10-05 20:17:47 +00:00

Closed #173 Writes follow a static intermediate in-brain directory symlink (brain_update, brain_tunnel, session_log) 2026-10-05 20:17:37 +00:00

Closed #174 DetectTunnels blocks on a FIFO under wiki/, hanging brain_update and brain_write 2026-10-05 20:12:45 +00:00

Closed #171 #157 slices 1–3: per-caller tests with in-brain symlink targets (search, hydrate, vectorstore, context excerpt, ReadNote) 2026-10-05 19:36:31 +00:00

Closed #169 brain_tunnel: path traversal lets an MCP token holder rewrite any file the pod can write 2026-10-05 18:47:07 +00:00

Closed #154 Test that /mcp authenticates through the production router; close the re-wrap gap in main.go 2026-10-05 17:48:44 +00:00

Closed #164 symlinkguard: a hung ntfy delays symlink removal (alert flush runs in the scan goroutine) 2026-10-05 14:48:16 +00:00

Closed #155 ingestion pins mcp-chassis v0.2.0: auth rejections aren't logged; REST metrics collapse to path="/" 2026-10-05 14:40:21 +00:00

Closed #177 brainfstest: swap-race asserts can pass vacuously (no read/iteration floor, swallowed Query errors) 2026-10-05 07:32:27 +00:00

Closed #83 ingestion: retry OIDC discovery instead of exiting on cold-boot 502 2026-10-05 05:03:36 +00:00

Closed #43 Brain interface: intent↔interface mismatch analysis (problem statement, evidence-backed) 2026-10-04 20:52:24 +00:00

Closed #162 test(ingestion): raw swap-race tests do not join the swapper goroutine; TempDir cleanup flakes CI 2026-10-03 19:46:19 +00:00

Closed #153 brain/raw/ readers follow symlinks (pending, promote); raw/ is writable via Syncthing 2026-10-03 15:32:34 +00:00

Closed #149 SECURITY: ingestion REST routes have no in-process auth; brain_ingest/ingest-path read any server file 2026-10-03 14:38:07 +00:00

Closed #144 brain-mcp: one shared bearer for every client, no per-caller read scoping (OWASP MCP07/MCP10) 2026-10-01 21:09:45 +00:00

Closed #145 brain_write is an ungated persistent prompt-injection path into every future session (OWASP MCP06) 2026-10-01 21:06:36 +00:00

Closed #142 claudewatcher scrubber misses https://user:secret@host — the git credential-store shape passes every rule 2026-09-30 14:08:29 +00:00

Closed #138 Consolidate the three independent frontmatter-fence parsers 2026-09-23 13:07:32 +00:00

Closed #107 Say so at startup when a security-relevant alert is unconfigured, instead of skipping silently 2026-09-23 13:02:40 +00:00

Closed #82 Surface aging brain/raw/ pending notes instead of relying on someone remembering to check 2026-09-23 12:46:12 +00:00

Closed #101 cd.yml fails on a duplicate run: "nothing to commit" is treated as an error 2026-09-23 12:44:46 +00:00

Closed #120 Procfile, Taskfile and smoke-routing.sh still invoke cmd/supervisor and cmd/routing, neither of which exists 2026-09-23 12:44:27 +00:00

Closed #134 Live-triage the real brain/raw/ backlog with brain_reject (deferred from #81) 2026-09-23 12:43:34 +00:00

Closed #123 Audit remaining write paths that reach disk without claim-envelope validation (brain_edit, ingestion pipeline) 2026-09-23 10:28:08 +00:00

Closed #125 UpdateNote: supersede_reason settable via caller's own frontmatter fragment, bypassing the Reason option 2026-09-23 08:18:30 +00:00

Closed #128 api/frontmatter.go's parseFrontmatter misparses an indented list item containing a colon as a top-level key 2026-09-23 08:12:06 +00:00

Closed #81 Add brain_reject: brain/raw/ pending notes can only be promoted, never discarded 2026-09-23 06:06:35 +00:00

Closed #106 Compile-on-ingest, second half: let the extraction see the page it is revising 2026-09-23 05:45:47 +00:00

Closed #79 chore(brain): deprecate + remove brain_write legacy params (domain/type/knowledge-path) (ADR-0012) 2026-09-23 05:43:28 +00:00

Closed #104 Contradiction flagging at ingest — reuse brain-gardener's Judge, do not build a second one 2026-09-23 05:22:28 +00:00

Closed #105 Source drift: hash the ingested body, skip an unchanged re-ingest, flag a changed one 2026-09-23 05:09:30 +00:00

Closed #112 close-session: teach it the claim envelope, and refresh its stale classification hint list 2026-09-22 21:27:11 +00:00

Closed #115 brain_edit always fails with "old_str is empty" even when old_str is non-empty 2026-09-22 21:27:11 +00:00

Closed #111 brain_update bypasses claim-envelope validation — a note can be superseded into a bad envelope 2026-09-22 21:27:11 +00:00

Closed #67 capture: populate classification.yaml at brain root (untagged repos fail-safe to confidential, block claude.ai capture) 2026-09-22 21:13:18 +00:00

Closed #117 ~385 auto-written See-also edges point at one-word TELOS entries — the graph's top two nodes are artifacts 2026-09-17 05:14:12 +00:00

Closed #118 CD runs twice per push and the second run fails on "nothing to commit" — a red CI signal with nothing wrong 2026-09-17 05:10:20 +00:00

Closed #116 config/models.yaml is not read by the deployed service, and names two models that no longer exist 2026-09-16 22:24:47 +00:00

Closed #84 Consolidate brain-ingest-ntfy + brain-weekly-ingest into hyperguild/ingestion 2026-09-03 06:31:01 +00:00

Closed #47 follow-up: synchronous semantic read-after-write for brain_update — DEFERRED (retro skill uses option b) 2026-08-27 06:33:14 +00:00

Closed #77 mcp-chassis: validate a LIST of trusted issuers (accept k8s SA tokens) — ADR-0011 2026-08-26 20:29:40 +00:00

Closed #100 The audit ntfy notifier is dark in production — BRAIN_NTFY_URL is unset on ingestion 2026-08-23 05:29:15 +00:00

Closed #94 brain-mcp is unfindable by name — fix the repo description and README (from #91 part 2) 2026-08-22 06:10:06 +00:00

Closed #97 brain_edit_root: alert and audit a governance-file rewrite, don't just slog it 2026-08-22 06:09:53 +00:00

Closed #22 chore(brain): migrate legacy notes into wing/hall layout 2026-08-19 18:21:04 +00:00

Closed #35 Validate the core hypothesis: MVP pass-rate dataset + fast-model kill-date 2026-08-19 18:19:36 +00:00

Closed #34 chore: gate #25 and #29 on routing bootstrap + fast-model validation (30-day hold) 2026-08-19 18:19:30 +00:00

Closed #32 chore: verify brain injection wired in all four routing skill handlers 2026-08-19 18:19:24 +00:00

Closed #31 fix: connect routing-mcp to claude.ai as custom MCP connector (project_create gap) 2026-08-19 18:19:18 +00:00

Closed #75 Consolidate to single harness: pin regressions, icebox cmd/routing, confirm hyperguild-alone is sufficient 2026-08-19 18:18:19 +00:00

Closed #65 chore: prune merged feature branches (hyperguild + infra) 2026-08-19 07:49:42 +00:00

Closed #39 chore: add brain tunnel between gitea-mcp/failures and hyperguild/decisions notes 2026-08-19 07:47:54 +00:00

Closed #33 chore: track crush.json in dotfiles repo 2026-08-19 07:46:54 +00:00

Closed #91 brain-mcp: capture with a tickets array fails; decide whether it graduates to its own repo (from infra#265) 2026-08-18 18:13:49 +00:00

Closed #93 wiki/index.md contains a truncated UTF-8 sequence — the index writer cuts mid-character 2026-08-18 05:20:11 +00:00

Closed #78 chore(brain): de-surface brain_index from the model-facing MCP toolset (ADR-0012 rule 4) 2026-08-17 22:31:37 +00:00

Closed #90 wiki notes with unquoted colon in title: produce invalid YAML frontmatter (8 files found) 2026-08-17 22:11:15 +00:00

Closed #89 Sprint 1: unblock deploy + stop ingestion data corruption 2026-07-27 12:40:58 +00:00

Closed #88 Extraction/canonicalization mass-attaches spurious [[mission]] link to unrelated tunnel-candidates notes 2026-07-27 12:39:38 +00:00

Closed #87 CanonicalizeLinks silently leaves wing:/wiki/-prefixed wikilinks broken instead of repairing them 2026-07-27 12:33:19 +00:00

Closed #86 writeHallNote stacks a second frontmatter block instead of merging (75 wiki notes affected) 2026-07-27 12:29:45 +00:00

Closed #85 Extraction pipeline drops source/author/published frontmatter (46/46 wiki/sources notes affected) 2026-07-26 21:42:45 +00:00

Closed #72 Routing pod: HYPERGUILD_CLAUDE_MODEL is a dead env key — thinking tier runs on default (offline iguana/gemma4-26b) 2026-07-26 21:39:13 +00:00

Closed #42 chore: move Go module path from github.com/mathiasbq/supervisor → git.d-ma.be/mathias/hyperguild 2026-07-26 21:37:29 +00:00

Closed #74 CD broken since gitea.d-ma.be→git.d-ma.be rename: ingestion build fails go mod download on mcp-chassis module path 2026-07-26 21:36:20 +00:00

Closed #73 P0: routing pod pass-rate instrumentation is broken 3 ways — #35 data gate is unsatisfiable as-coded 2026-06-30 20:13:25 +00:00

Closed #38 feat: brain_pending and brain_promote — close the curation loop for raw → wiki promotion 2026-06-26 14:49:28 +00:00

Closed #62 capture follow-up: close-session SKILL veneer over the capture tool 2026-06-26 14:28:49 +00:00

Closed #66 bug: capture relay has no SummaryWriter wired — summary silently fails (ai-sessions path) 2026-06-23 15:22:42 +00:00

Closed #49 feat: uniform capture capability — REST+OAuth2 spine for session insight/ticket capture across all harnesses 2026-06-23 05:29:12 +00:00

Closed #55 capture #49f: central relay + I2 security-baseline ledger entry (non-library harnesses) 2026-06-23 05:28:48 +00:00

Closed #54 capture #49e: I5 audit path + classification-aware degradation (loki + buffer + reconcile) 2026-06-22 21:57:52 +00:00

Closed #53 capture #49d: POST /capture REST adapter + OAuth2 + I1 gate (server-derived origin) 2026-06-22 21:44:14 +00:00

Closed #52 capture #49c: Gitea IssueTracker client (new outbound dependency) 2026-06-22 21:32:02 +00:00

Closed #51 capture #49b: CaptureService use-case + BrainStore extraction + ports/entities 2026-06-22 21:31:47 +00:00

Closed #50 capture #49a: classification taxonomy + per-wing/repo tagging (I1 prerequisite) 2026-06-22 21:31:18 +00:00

Closed #45 feat: brain_update — supersede-by-slug write verb (+ read-after-write: brain_get, brain_write handle) 2026-06-22 08:59:28 +00:00

Closed #37 feat: brain_pending + brain_promote tools — close the raw→wiki curation loop 2026-06-22 05:43:07 +00:00

Closed #44 [handover] Brain-MCP intent↔interface study — agent column + merge scaffold ready for review 2026-06-16 18:59:30 +00:00

Closed #30 chore(security): rotate brain_app postgres password + migrate BRAIN_PG_DSN from SOPS to 1Password via ESO 2026-05-27 11:18:31 +00:00

Closed #20 chore(security): rotate brain_app postgres password — leaked in pre-fix pod logs 2026-05-27 10:54:00 +00:00

Closed #27 Track E.1 — Claude Code session ingestion watcher 2026-05-26 17:24:01 +00:00

Closed #28 Track E.2 — brain_context MCP tool 2026-05-26 17:24:01 +00:00

Closed #26 plan-7: write + execute supervisor MCP retirement (skill surface lives in routing now) 2026-05-22 05:10:30 +00:00

Closed #23 feat(brain): re-embed on file edit (Sync should respect mtime) 2026-05-20 07:52:01 +00:00

Closed #21 ops(brain): register brain MCP as a custom integration in claude.ai 2026-05-20 07:46:26 +00:00

Closed #17 fix: project_create — make GitHub mirror opt-in (mirror_to_github, default false) 2026-05-20 06:35:09 +00:00

Closed #19 bug(brain): first embed-sync tick reports errors=1 — find which file failed 2026-05-20 06:26:04 +00:00

Closed #18 chore(brain): backfill pgvector from current wiki/ 2026-05-20 06:25:46 +00:00

Closed #8 feat(brain): hybrid BM25+vector search via Qdrant + nomic-embed-text 2026-05-18 21:11:49 +00:00

Closed #7 feat(brain): add Qwen3-Reranker to brain_answer for improved RAG quality 2026-05-18 20:56:11 +00:00

Closed #5 feat(ingestion): add OAuth 2.0 client credentials flow to brain MCP server 2026-05-18 20:22:19 +00:00

Closed #16 feat(brain): cross-wing tunnels — bidirectional wikilinks between notes in different Wings 2026-05-18 19:33:09 +00:00

Closed #9 brain MCP: accept static Bearer without OAuth challenge for LAN/Tailscale CLI clients 2026-05-18 19:26:30 +00:00

Closed #1 feat: structured brain — Hall taxonomy, Obsidian-compatible layout, and filtered query 2026-05-18 18:47:32 +00:00

Closed #2 feat: brain tunnels — cross-wing concept links and embedding-based retrieval 2026-05-18 18:04:06 +00:00

Closed #15 flake: TestRoutingPodEndToEnd port-wait deadline exceeded under load 2026-05-18 18:00:20 +00:00

Closed #14 fix: project_create infra branch vs main + GITEA_MCP_TOKEN missing from SOPS secrets 2026-05-18 15:22:09 +00:00

Closed #12 fix: set GITHUB_PAT in routing pod k8s secret to enable GitHub repo creation in project_create 2026-05-18 15:08:50 +00:00

Closed #13 fix: routing pod cannot authenticate against gitea-mcp (401 on project_create) 2026-05-18 14:13:32 +00:00

Closed #11 test: project_create e2e findings + improvements needed for claude.ai project initiation 2026-05-18 13:15:45 +00:00

Closed #10 feat: project-webhook — HTTP endpoint to trigger new-project from claude.ai 2026-05-18 09:44:40 +00:00

Closed #6 feat: JWT auth middleware + /.well-known/oauth-protected-resource for supervisor and brain MCP servers (Dex OIDC) 2026-05-11 19:26:40 +00:00

140 Issues created by 1 user

Opened #1 feat: structured brain — Hall taxonomy, Obsidian-compatible layout, and filtered query 2026-05-07 15:02:19 +00:00

Opened #2 feat: brain tunnels — cross-wing concept links and embedding-based retrieval 2026-05-07 15:44:54 +00:00

Opened #5 feat(ingestion): add OAuth 2.0 client credentials flow to brain MCP server 2026-05-10 20:57:28 +00:00

Opened #6 feat: JWT auth middleware + /.well-known/oauth-protected-resource for supervisor and brain MCP servers (Dex OIDC) 2026-05-11 17:22:59 +00:00

Opened #7 feat(brain): add Qwen3-Reranker to brain_answer for improved RAG quality 2026-05-12 15:34:18 +00:00

Opened #8 feat(brain): hybrid BM25+vector search via Qdrant + nomic-embed-text 2026-05-12 15:34:32 +00:00

Opened #9 brain MCP: accept static Bearer without OAuth challenge for LAN/Tailscale CLI clients 2026-05-13 05:00:42 +00:00

Opened #10 feat: project-webhook — HTTP endpoint to trigger new-project from claude.ai 2026-05-14 13:56:23 +00:00

Opened #11 test: project_create e2e findings + improvements needed for claude.ai project initiation 2026-05-18 12:33:41 +00:00

Opened #12 fix: set GITHUB_PAT in routing pod k8s secret to enable GitHub repo creation in project_create 2026-05-18 13:32:51 +00:00

Opened #13 fix: routing pod cannot authenticate against gitea-mcp (401 on project_create) 2026-05-18 14:02:46 +00:00

Opened #14 fix: project_create infra branch vs main + GITEA_MCP_TOKEN missing from SOPS secrets 2026-05-18 14:33:50 +00:00

Opened #15 flake: TestRoutingPodEndToEnd port-wait deadline exceeded under load 2026-05-18 15:23:58 +00:00

Opened #16 feat(brain): cross-wing tunnels — bidirectional wikilinks between notes in different Wings 2026-05-18 18:03:55 +00:00

Opened #17 fix: project_create — make GitHub mirror opt-in (mirror_to_github, default false) 2026-05-18 21:44:16 +00:00

Opened #18 chore(brain): backfill pgvector from current wiki/ 2026-05-19 11:10:30 +00:00

Opened #19 bug(brain): first embed-sync tick reports errors=1 — find which file failed 2026-05-19 11:10:40 +00:00

Opened #20 chore(security): rotate brain_app postgres password — leaked in pre-fix pod logs 2026-05-19 11:10:55 +00:00

Opened #21 ops(brain): register brain MCP as a custom integration in claude.ai 2026-05-19 11:11:04 +00:00

Opened #22 chore(brain): migrate legacy notes into wing/hall layout 2026-05-19 11:11:15 +00:00

Opened #23 feat(brain): re-embed on file edit (Sync should respect mtime) 2026-05-19 11:11:25 +00:00

Opened #24 chore: reduce context burn from skill listing — adopt lazy skill-index pattern 2026-05-20 19:17:21 +00:00

Opened #25 skills(platform): major overhaul — succinct + brain-backed + lazy + reconsider MCP-vs-CLI 2026-05-21 19:39:57 +00:00

Opened #26 plan-7: write + execute supervisor MCP retirement (skill surface lives in routing now) 2026-05-21 21:25:58 +00:00

Opened #27 Track E.1 — Claude Code session ingestion watcher 2026-05-25 16:45:25 +00:00

Opened #28 Track E.2 — brain_context MCP tool 2026-05-25 16:45:28 +00:00

Opened #29 Track E.3 — skill-from-session generator (BLOCKED on E.1) 2026-05-25 16:45:30 +00:00

Opened #30 chore(security): rotate brain_app postgres password + migrate BRAIN_PG_DSN from SOPS to 1Password via ESO 2026-05-27 10:53:54 +00:00

Opened #31 fix: connect routing-mcp to claude.ai as custom MCP connector (project_create gap) 2026-05-27 20:21:32 +00:00

Opened #32 chore: verify brain injection wired in all four routing skill handlers 2026-05-28 10:31:55 +00:00

Opened #33 chore: track crush.json in dotfiles repo 2026-05-29 08:30:22 +00:00

Opened #34 chore: gate #25 and #29 on routing bootstrap + fast-model validation (30-day hold) 2026-05-29 08:30:41 +00:00

Opened #35 Validate the core hypothesis: MVP pass-rate dataset + fast-model kill-date 2026-05-29 12:54:30 +00:00

Opened #36 adr: define stable agent platform interface contract (execute / getEvents / emitEvent / wake / provision) 2026-06-05 18:39:35 +00:00

Opened #37 feat: brain_pending + brain_promote tools — close the raw→wiki curation loop 2026-06-06 06:10:30 +00:00

Opened #38 feat: brain_pending and brain_promote — close the curation loop for raw → wiki promotion 2026-06-06 06:12:33 +00:00

Opened #39 chore: add brain tunnel between gitea-mcp/failures and hyperguild/decisions notes 2026-06-06 06:22:39 +00:00

Opened #40 langgen: generate LANGUAGE.md from brain glossary at session start (Phase 2 — GATED) 2026-06-12 20:39:40 +00:00

Opened #41 Caveman declarations in ntfy approval messages for HIGH/CRITICAL ops (Phase 3 — GATED) 2026-06-12 20:39:53 +00:00

Opened #42 chore: move Go module path from github.com/mathiasbq/supervisor → git.d-ma.be/mathias/hyperguild 2026-06-15 03:50:18 +00:00

Opened #43 Brain interface: intent↔interface mismatch analysis (problem statement, evidence-backed) 2026-06-15 17:57:14 +00:00

Opened #44 [handover] Brain-MCP intent↔interface study — agent column + merge scaffold ready for review 2026-06-16 18:48:41 +00:00

Opened #45 feat: brain_update — supersede-by-slug write verb (+ read-after-write: brain_get, brain_write handle) 2026-06-22 06:06:16 +00:00

Opened #47 follow-up: synchronous semantic read-after-write for brain_update — DEFERRED (retro skill uses option b) 2026-06-22 06:27:04 +00:00

Opened #49 feat: uniform capture capability — REST+OAuth2 spine for session insight/ticket capture across all harnesses 2026-06-22 17:11:14 +00:00

Opened #50 capture #49a: classification taxonomy + per-wing/repo tagging (I1 prerequisite) 2026-06-22 20:26:32 +00:00

Opened #51 capture #49b: CaptureService use-case + BrainStore extraction + ports/entities 2026-06-22 20:26:55 +00:00

Opened #52 capture #49c: Gitea IssueTracker client (new outbound dependency) 2026-06-22 20:27:10 +00:00

Opened #53 capture #49d: POST /capture REST adapter + OAuth2 + I1 gate (server-derived origin) 2026-06-22 20:27:28 +00:00

Opened #54 capture #49e: I5 audit path + classification-aware degradation (loki + buffer + reconcile) 2026-06-22 20:27:44 +00:00

Opened #55 capture #49f: central relay + I2 security-baseline ledger entry (non-library harnesses) 2026-06-22 20:28:06 +00:00

Opened #62 capture follow-up: close-session SKILL veneer over the capture tool 2026-06-23 05:44:30 +00:00

Opened #63 capture follow-up: OAuth2 token provisioning for Crush / Pi / LLM Council 2026-06-23 05:44:45 +00:00

Opened #64 capture follow-up: harvest adapters (transcript-parse / chat-reconstruct / agent-runlog) 2026-06-23 05:45:02 +00:00

Opened #65 chore: prune merged feature branches (hyperguild + infra) 2026-06-23 06:29:32 +00:00

Opened #66 bug: capture relay has no SummaryWriter wired — summary silently fails (ai-sessions path) 2026-06-23 08:36:50 +00:00

Opened #67 capture: populate classification.yaml at brain root (untagged repos fail-safe to confidential, block claude.ai capture) 2026-06-23 08:39:47 +00:00

Opened #71 feat(brain-mcp): read-only enumeration surface over HTTP (list/get/graph) — unblocks brain-audit's real read backend 2026-06-26 21:40:47 +00:00

Opened #72 Routing pod: HYPERGUILD_CLAUDE_MODEL is a dead env key — thinking tier runs on default (offline iguana/gemma4-26b) 2026-06-29 19:52:57 +00:00

Opened #73 P0: routing pod pass-rate instrumentation is broken 3 ways — #35 data gate is unsatisfiable as-coded 2026-06-30 06:30:16 +00:00

Opened #74 CD broken since gitea.d-ma.be→git.d-ma.be rename: ingestion build fails go mod download on mcp-chassis module path 2026-06-30 19:18:03 +00:00

Opened #75 Consolidate to single harness: pin regressions, icebox cmd/routing, confirm hyperguild-alone is sufficient 2026-07-01 11:12:37 +00:00

Opened #77 mcp-chassis: validate a LIST of trusted issuers (accept k8s SA tokens) — ADR-0011 2026-07-06 19:31:42 +00:00

Opened #78 chore(brain): de-surface brain_index from the model-facing MCP toolset (ADR-0012 rule 4) 2026-07-07 07:45:17 +00:00

Opened #79 chore(brain): deprecate + remove brain_write legacy params (domain/type/knowledge-path) (ADR-0012) 2026-07-07 07:45:36 +00:00

Opened #80 design(brain): remember + recall consolidations under ADR-0009/0012 (blocked on 0009 design) 2026-07-07 07:45:59 +00:00

Opened #81 Add brain_reject: brain/raw/ pending notes can only be promoted, never discarded 2026-07-15 09:45:18 +00:00

Opened #82 Surface aging brain/raw/ pending notes instead of relying on someone remembering to check 2026-07-15 09:45:35 +00:00

Opened #83 ingestion: retry OIDC discovery instead of exiting on cold-boot 502 2026-07-17 12:15:08 +00:00

Opened #84 Consolidate brain-ingest-ntfy + brain-weekly-ingest into hyperguild/ingestion 2026-07-24 06:12:55 +00:00

Opened #85 Extraction pipeline drops source/author/published frontmatter (46/46 wiki/sources notes affected) 2026-07-26 21:12:07 +00:00

Opened #86 writeHallNote stacks a second frontmatter block instead of merging (75 wiki notes affected) 2026-07-26 21:12:15 +00:00

Opened #87 CanonicalizeLinks silently leaves wing:/wiki/-prefixed wikilinks broken instead of repairing them 2026-07-26 21:12:24 +00:00

Opened #88 Extraction/canonicalization mass-attaches spurious [[mission]] link to unrelated tunnel-candidates notes 2026-07-26 21:12:31 +00:00

Opened #89 Sprint 1: unblock deploy + stop ingestion data corruption 2026-07-26 21:33:23 +00:00

Opened #90 wiki notes with unquoted colon in title: produce invalid YAML frontmatter (8 files found) 2026-07-27 12:29:29 +00:00

Opened #91 brain-mcp: capture with a tickets array fails; decide whether it graduates to its own repo (from infra#265) 2026-08-11 21:15:54 +00:00

Opened #93 wiki/index.md contains a truncated UTF-8 sequence — the index writer cuts mid-character 2026-08-17 22:11:01 +00:00

Opened #94 brain-mcp is unfindable by name — fix the repo description and README (from #91 part 2) 2026-08-18 13:34:14 +00:00

Opened #97 brain_edit_root: alert and audit a governance-file rewrite, don't just slog it 2026-08-18 18:39:52 +00:00

Opened #100 The audit ntfy notifier is dark in production — BRAIN_NTFY_URL is unset on ingestion 2026-08-22 06:22:50 +00:00

Opened #101 cd.yml fails on a duplicate run: "nothing to commit" is treated as an error 2026-08-22 06:23:13 +00:00

Opened #104 Contradiction flagging at ingest — reuse brain-gardener's Judge, do not build a second one 2026-08-22 11:58:49 +00:00

Opened #105 Source drift: hash the ingested body, skip an unchanged re-ingest, flag a changed one 2026-08-22 11:59:04 +00:00

Opened #106 Compile-on-ingest, second half: let the extraction see the page it is revising 2026-08-22 11:59:32 +00:00

Opened #107 Say so at startup when a security-relevant alert is unconfigured, instead of skipping silently 2026-08-22 11:59:44 +00:00

Opened #111 brain_update bypasses claim-envelope validation — a note can be superseded into a bad envelope 2026-08-23 05:37:57 +00:00

Opened #112 close-session: teach it the claim envelope, and refresh its stale classification hint list 2026-08-23 05:38:08 +00:00

Opened #113 Semantic vs lexical retrieval — the gap ADR-0009 structured but did not close 2026-08-23 05:38:31 +00:00

Opened #114 brain_answer is not trusted as a terminal answer — the fourth #43 cluster, still open 2026-08-23 05:38:44 +00:00

Opened #115 brain_edit always fails with "old_str is empty" even when old_str is non-empty 2026-08-31 05:10:28 +00:00

Opened #116 config/models.yaml is not read by the deployed service, and names two models that no longer exist 2026-09-16 21:28:02 +00:00

Opened #117 ~385 auto-written See-also edges point at one-word TELOS entries — the graph's top two nodes are artifacts 2026-09-16 22:09:07 +00:00

Opened #118 CD runs twice per push and the second run fails on "nothing to commit" — a red CI signal with nothing wrong 2026-09-16 22:09:17 +00:00

Opened #120 Procfile, Taskfile and smoke-routing.sh still invoke cmd/supervisor and cmd/routing, neither of which exists 2026-09-16 22:25:40 +00:00

Opened #122 Brain search requires Postgres, so there is no offline or portable path — decide whether that matters 2026-09-22 19:39:06 +00:00

Opened #123 Audit remaining write paths that reach disk without claim-envelope validation (brain_edit, ingestion pipeline) 2026-09-22 21:20:52 +00:00

Opened #125 UpdateNote: supersede_reason settable via caller's own frontmatter fragment, bypassing the Reason option 2026-09-22 21:28:34 +00:00

Opened #128 api/frontmatter.go's parseFrontmatter misparses an indented list item containing a colon as a top-level key 2026-09-23 05:07:32 +00:00

Opened #134 Live-triage the real brain/raw/ backlog with brain_reject (deferred from #81) 2026-09-23 06:06:46 +00:00

Opened #138 Consolidate the three independent frontmatter-fence parsers 2026-09-23 08:39:52 +00:00

Opened #141 internal/wiki/merge.go:184 is a fourth hand-rolled frontmatter-fence parser, not folded into frontmatter.Split 2026-09-23 13:07:51 +00:00

Opened #142 claudewatcher scrubber misses https://user:secret@host — the git credential-store shape passes every rule 2026-09-30 11:24:16 +00:00

Opened #143 url-userinfo-credential: two residual shapes still pass — secret containing "/" and the scheme-less form 2026-09-30 14:26:00 +00:00

Opened #144 brain-mcp: one shared bearer for every client, no per-caller read scoping (OWASP MCP07/MCP10) 2026-10-01 16:34:43 +00:00

Opened #145 brain_write is an ungated persistent prompt-injection path into every future session (OWASP MCP06) 2026-10-01 16:34:51 +00:00

Opened #146 brain-mcp: per-client bearer tokens instead of one shared token (split from #144) 2026-10-01 18:33:25 +00:00

Opened #148 Provenance: first-party writers (claudewatcher, pipeline) stamp origin: unknown — add an internal origin 2026-10-01 20:19:45 +00:00

Opened #149 SECURITY: ingestion REST routes have no in-process auth; brain_ingest/ingest-path read any server file 2026-10-01 20:56:15 +00:00

Opened #150 Provenance residuals: brain_tunnel edits without re-stamping; generated aggregates carry none 2026-10-01 20:56:19 +00:00

Opened #151 provenance follow-ups: decode written_by on read; promote leaves empty dir on refusal; partial multi-page ingest 2026-10-01 21:07:17 +00:00

Opened #153 brain/raw/ readers follow symlinks (pending, promote); raw/ is writable via Syncthing 2026-10-03 14:32:32 +00:00

Opened #154 Test that /mcp authenticates through the production router; close the re-wrap gap in main.go 2026-10-03 14:35:26 +00:00

Opened #155 ingestion pins mcp-chassis v0.2.0: auth rejections aren't logged; REST metrics collapse to path="/" 2026-10-03 14:42:23 +00:00

Opened #157 SECURITY: symlinks anywhere in the Syncthing-shared brain dir are followed by search, vectorstore, context and graph readers 2026-10-03 14:57:13 +00:00

Opened #158 Writes under brain/raw/ follow symlinks: processed/, rejected/, .processed markers, tunnel-candidates 2026-10-03 14:57:17 +00:00

Opened #162 test(ingestion): raw swap-race tests do not join the swapper goroutine; TempDir cleanup flakes CI 2026-10-03 16:20:37 +00:00

Opened #163 ntfy notifier hard-codes the title "brain-capture audit degraded" for every alert 2026-10-03 16:24:32 +00:00

Opened #164 symlinkguard: a hung ntfy delays symlink removal (alert flush runs in the scan goroutine) 2026-10-03 16:33:02 +00:00

Opened #167 brainfs: fd-relative walk to close the directory-swap race (accepted residual from #157) 2026-10-04 06:34:49 +00:00

Opened #169 brain_tunnel: path traversal lets an MCP token holder rewrite any file the pod can write 2026-10-04 20:24:01 +00:00

Opened #171 #157 slices 1–3: per-caller tests with in-brain symlink targets (search, hydrate, vectorstore, context excerpt, ReadNote) 2026-10-04 20:41:05 +00:00

Opened #173 Writes follow a static intermediate in-brain directory symlink (brain_update, brain_tunnel, session_log) 2026-10-05 05:03:27 +00:00

Opened #174 DetectTunnels blocks on a FIFO under wiki/, hanging brain_update and brain_write 2026-10-05 05:03:30 +00:00

Opened #177 brainfstest: swap-race asserts can pass vacuously (no read/iteration floor, swallowed Query errors) 2026-10-05 05:21:10 +00:00

Opened #178 brain_write loses the learning when any subdirectory under knowledge/ or wiki/ is unreadable 2026-10-05 05:21:20 +00:00

Opened #179 symlinkguard ignores FIFOs and other special files: a planted FIFO classification.yaml crash-loops the pod 2026-10-05 07:27:39 +00:00

Opened #182 ingestion main.go: symlink tripwire wiring, buildMux arguments and ListenAndServe line remain untested (split from #154) 2026-10-05 07:40:18 +00:00

Opened #184 ingestion: cmd/server has no signal handling; symlinkguard.Watch gets context.Background() so its shutdown flush never runs 2026-10-05 14:28:00 +00:00

Opened #185 ingestion metrics: an authenticated request to an unregistered path is labelled with the raw URL path (unbounded series) 2026-10-05 14:28:57 +00:00

Opened #188 brain_write follows a symlinked wing directory, including one that points outside the brain 2026-10-05 19:06:00 +00:00

Opened #192 brain_edit path I/O: snapshot read hangs on a FIFO, lock file and rollback write by path 2026-10-05 20:55:37 +00:00

Opened #193 symlinkguard: Watch alert-queue tests flake under -race and CPU load 2026-10-05 21:01:06 +00:00

Opened #196 brain_edit: snapshot taken outside the lock and rollback after unlock can overwrite a concurrent edit 2026-10-05 21:36:57 +00:00

Opened #197 Only notes.Edit takes the per-note edit lock; other writers of the same notes do not 2026-10-05 21:43:27 +00:00

Opened #199 watcher: a marker write that fails for a reason other than ErrNotRegular is only logged, so the note is retried every round 2026-10-05 21:47:40 +00:00

Opened #198 watcher: archive copy reads the whole note into memory (io.ReadAll), with no size cap 2026-10-05 21:47:40 +00:00

Opened #200 chore(context): restore the root rules in AGENTS.md and system-prompt.txt (project-only since 10-08) 2026-10-09 05:59:43 +00:00

Opened #202 brain_answer synthesises from ~300-char excerpts only, so it cannot answer from any long note 2026-10-12 13:05:19 +00:00

Opened #203 brain_query's "BM25" is raw substring counting: no IDF, no length normalisation, one-letter terms count every letter 2026-10-12 13:05:24 +00:00