Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Plans Index

Este diretório contém os planos de implementação para o projeto GarraRUST.

Índice de Planos

ID Título Linear Status
0001 GAR-360 — Scaffold Inicial (Fase 1) GAR-360 ✅ Merged
0002 GAR-361 — Agentes e Providers (Fase 2.1) GAR-361 ✅ Merged
0003 GAR-362 — Channels (Fase 2.2) GAR-362 ✅ Merged
0004 GAR-363 — Plugins WASM (Fase 2.3) GAR-363 ✅ Merged
0005 GAR-364 — Fase 3.1 Postgres Multi-tenant Schema GAR-364 ✅ Merged
0006 GAR-365 — Fase 3.2 Auth JWT + RBAC GAR-365 ✅ Merged
0007 GAR-366 — Fase 3.3 Groups API GAR-366 ✅ Merged
0008 GAR-367 — Fase 3.4 Channels REST GAR-367 ✅ Merged
0009 GAR-368 — Fase 3.5 Storage S3 + LocalFS GAR-368 ✅ Merged
0010 GAR-386 — pgvector HNSW + memory_embeddings migration GAR-386 ✅ Merged
0011 GAR-388 — task system Tier 1 migration + RLS GAR-388 ✅ Merged
0011.5 GAR-391b — hash_upgraded_at prereq migration (009) GAR-391b ✅ Merged
0012 GAR-391c — extractor + wiring (/v1/auth/* default-on) GAR-391c ✅ Merged
0013 GAR-392 — Pure RLS matrix (81 cenários) GAR-392 ✅ Merged
0014 GAR-391d — App-layer cross-group authz via HTTP GAR-391d ✅ Merged
0015 GAR-393 — REST /v1 surface scaffold (OpenAPI + Swagger UI + /me) GAR-393 ✅ Merged
0016 GAR-393 slice 2 — Groups CRUD (/v1/groups) GAR-393 ✅ Merged
0017 GAR-393 slice 2b — Group Read + Update (GET/PATCH /v1/groups/{id}) GAR-393 ✅ Merged
0018 GAR-393 slice 2c — Group Invites (POST /v1/groups/{id}/invites) GAR-393 ✅ Merged
0019 GAR-393 slice 3 — Invite Accept (POST /v1/invites/{token}/accept) GAR-393 ✅ Merged
0020 GAR-394 — ObjectStore trait + LocalFs (storage slice 1) GAR-394 ✅ Merged
0021 GAR-408 — tus 1.0 uploads (Fase 3.5 slice 1) GAR-408 ✅ Merged
0022 GAR-412 — /metrics dedicated listener + Prometheus auth GAR-412 ✅ Merged
0023 GAR-411 — Rate limiter (Governor/tower-governor) GAR-411 ✅ Merged
0024 (renumbered → see 0022)
0025 GAR-415 — Trusted proxy + real_client_ip GAR-415 ✅ Merged
0026 GAR-416 — Request-ID propagation GAR-416 ✅ Merged
0027 GAR-417 — Health check /health GAR-417 ✅ Merged
0028 GAR-418 — Graceful shutdown GAR-418 ✅ Merged
0029 GAR-419 — TLS termination (axum-server) GAR-419 ✅ Merged
0030 GAR-420 — Config watcher (hot reload) GAR-420 ✅ Merged
0031 GAR-421 — Cluster mode (multi-process) GAR-421 ✅ Merged
0032 GAR-422 — OpenTelemetry baseline GAR-422 ✅ Merged
0033 GAR-379 slice 1 — garraia config check GAR-379 ✅ Merged
0034 GAR-413 Stage 0 — migrate workspace scaffold GAR-413 ✅ Merged
0035 (renumbered → see 0033)
0036 GAR-382 — update_mobile_user_hash lazy PBKDF2→Argon2id upgrade GAR-382 ✅ Merged
0037 GAR-394 slice 1 — ObjectStore trait + LocalFs baseline GAR-394 ✅ Merged
0038 GAR-394 slice 2 — S3Compatible backend GAR-394 ✅ Merged
0039 GAR-413 Stage 1 — users + user_identities migration GAR-413 ✅ Merged
0040 GAR-413 Stage 3 — groups + group_members migration GAR-413 ✅ Merged
0041 GAR-395 slice 1 — tus 1.0 Creation + Resume + OPTIONS GAR-395 ✅ Merged
0042 GAR-390 — garraia_signup BYPASSRLS role (migration 010) GAR-390 ✅ Merged
0043 GAR-389 — group_invites UNIQUE + single-owner idx (migrations 011-012) GAR-389 ✅ Merged
0044 GAR-395 slice 2 — tus PATCH commit (ObjectStore wire) GAR-395 ✅ Merged
0045 GAR-413 Stage 5 — chats + chat_members migration GAR-413 ✅ Merged
0046 GAR-379 slice 3 — AuthSection config knobs + fail-closed sentinel GAR-379 ✅ Merged
0047 GAR-395 slice 3 — tus DELETE + expiration worker + put_stream GAR-395 ✅ Merged
0048 GAR-427 — garraia migrate workspace Stage 2 (user_identities) GAR-427 ✅ Merged
0049 GAR-429 Lote Q.1 — clippy strict baseline (26 warnings cleared) GAR-429 ✅ Merged
0050 GAR-438 — CI pipeline fix (e2e + playwright binário correto) GAR-438 ✅ Merged
0051 GAR-444 — Playwright MCP spec → data-testid anchors GAR-444 ✅ Merged
0052 GAR-443 Lote 4 — Playwright spec migration to data-testid GAR-443 ✅ Merged
0053 GAR-458 — cargo-deny advisories gate (RUSTSEC triage) GAR-458 ✅ Merged
0054 GAR-506 — REST /v1 chats slice 1 (POST + GET /v1/groups/{id}/chats) GAR-506 ✅ Merged
0055 GAR-507 — REST /v1 messages slice 2 (POST + GET /v1/chats/{id}/messages) GAR-507 ✅ Merged
0056 GAR-508 — REST /v1 messages slice 3 (POST /v1/messages/{id}/threads) GAR-508 ✅ Merged
0057 GAR-462 — Security Audit gate (cargo audit --deny unsound) GAR-462 ✅ Merged
0058 GAR-463 — Coverage gate (cargo-llvm-cov soft-gate) GAR-463 ✅ Merged
0059 GAR-464 — Dependency Review gate GAR-464 ✅ Merged
0060 GAR-465 — Secret scan (gitleaks) GAR-465 ✅ Merged
0061 GAR-466 — MSRV check (1.92) GAR-466 ✅ Merged
0062 GAR-514 — memory API slice 1 (GET/POST/DELETE /v1/memory) GAR-514 ✅ Merged
0063 GAR-515 — memory slice 2 (pin/unpin) GAR-515 ✅ Merged
0064 GAR-500 — Quality Ratchet PR-1 scaffold GAR-500 ✅ Merged
0065 GAR-516 — tasks API slice 1 (task-lists + tasks CRUD) GAR-516 ✅ Merged
0066 (merged into 0065)
0067 (merged into 0065)
0068 GAR-518 — tasks slice 2 (PATCH + DELETE) GAR-518 ✅ Merged
0069 GAR-520 — tasks slice 3 (GET single task) GAR-520 ✅ Merged
0070 GAR-572 — audit API slice 1 (GET /v1/groups/{id}/audit) GAR-572 ✅ Merged
0071 GAR-522 — tasks slice 4 (task comments) GAR-522 ✅ Merged
0072 GAR-523 — tasks slice 5 (task assignees) GAR-523 ✅ Merged
0073 GAR-524 — tasks slice 6 (subscriptions) GAR-524 ✅ Merged
0074 GAR-528 — memory slice 3 (GET + PATCH /v1/memory/{id}) GAR-528 ✅ Merged
0075 GAR-525 — tasks slice 7 (task labels) GAR-525 ✅ Merged
0076 GAR-530 — chats slice 2 (individual chat ops + member CRUD) GAR-530 ✅ Merged
0077 GAR-533 — tasks slice 4b (task assignees API) GAR-533 ✅ Merged
0078 GAR-526 — tasks slice 8 (label assignments) GAR-526 ✅ Merged
0079 GAR-539 — tasks slice 6b (subscriptions API) GAR-539 ✅ Merged
0080 GAR-541 — tasks slice 9 (task activity log) GAR-541 ✅ Merged
0081 GAR-543 — tasks slice 10 (task comments full CRUD) GAR-543 ✅ Merged
0082 GAR-544 — tasks slice 11 (task move) GAR-544 ✅ Merged
0083 GAR-546 — tasks slice 12 (subtasks) GAR-546 ✅ Merged
0084 GAR-549 — unified FTS search (GET /v1/search) GAR-549 ✅ Merged
0085 GAR-551 — files API slice 1 (POST + GET /v1/groups/{id}/files) GAR-551 ✅ Merged
0086 GAR-553 — files API slice 2 (folders CRUD) GAR-553 ✅ Merged
0087 GAR-555 — files API slice 3 (file versions) GAR-555 ✅ Merged
0088 GAR-556 — files API slice 4 (file download) GAR-556 ✅ Merged
0089 GAR-557 — files API slice 5 (PATCH /v1/groups/{id}/files/{fid}) GAR-557 ✅ Merged
0090 GAR-558 — files API slice 6 (DELETE /v1/groups/{id}/files/{fid}) GAR-558 ✅ Merged
0091 GAR-559 — files API slice 7 (GET /v1/groups/{id}/files/{fid}) GAR-559 ✅ Merged
0092 GAR-560 — files API slice 8 (folder ops) GAR-560 ✅ Merged
0093 GAR-561 — files API slice 9 (file versions list) GAR-561 ✅ Merged
0094 GAR-562 — files API slice 10 (new version upload) GAR-562 ✅ Merged
0095 GAR-563 — files API slice 11 (folder get + patch + delete) GAR-563 ✅ Merged
0096 GAR-572 — tasks slice 9b (task attachments API) GAR-572 ✅ Merged
0097 GAR-574 — groups slice 2 (GET members + invites) GAR-574 ✅ Merged
0098 GAR-575 — groups slice 3 (set member role + delete member) GAR-575 ✅ Merged
0099 GAR-576 — groups slice 4 (delete group + leave group) GAR-576 ✅ Merged
0100 GAR-577 — messages slice 4 (GET /v1/messages/{id} + DELETE) GAR-577 ✅ Merged
0101 GAR-578 — tasks API slice 13 (task activity read) GAR-578 ✅ Merged
0102 GAR-579 — tasks slice 14 (task labels read + delete) GAR-579 ✅ Merged
0103 GAR-580 — invites slice 2 (GET + DELETE /v1/groups/{id}/invites) GAR-580 ✅ Merged
0104 GAR-581 — tasks slice 15 (GET /v1/groups/{id}/tasks/{tid}/subtasks) GAR-581 ✅ Merged
0105 GAR-580 — groups slice 5 (GET /v1/groups list) GAR-580 ✅ Merged
0106 GAR-582 — tasks slice 16 (unsubscribe from task) GAR-582 ✅ Merged
0107 GAR-592 — messages slice 5 (PATCH + DELETE /v1/messages/{id}) GAR-592 ✅ Merged 2026-05-12 via PR #300 (3c843e4)
0108 GAR-593 — chats slice 3 (GET /v1/chats/{id}/messages thread listing) GAR-593 ✅ Merged
0109 GAR-595 — messages slice 6: GET /v1/messages/{id} + GET /v1/messages/{id}/threads GAR-595 ✅ Merged 2026-05-13 via PR #305 (e8cc44d)
0110 GAR-599 — GET /v1/groups/{group_id}/task-lists/{list_id} + PATCH /v1/me GAR-599 ✅ Merged 2026-05-13 via PR #307 (d43d025)
0111 GAR-600 — patch-and-minor batch May 13: 17 dep upgrades (tokio, axum, hyper, tower-http, jsonwebtoken, uuid, …) GAR-600 ✅ Merged 2026-05-13 via PR #309 (c9196ac4)
0112 GAR-465 — Q6.3 Session TTL + Boundary Mutation Coverage GAR-465 ✅ Merged 2026-05-13 via PR #312 (5197581)
0113 GAR-601 — bump aws-actions/configure-aws-credentials v4 → v6 (Node20 deprecation) GAR-601 ✅ Merged 2026-05-13 via PR #313 (4374623)
0114 GAR-483 — Q6.6.b Debug-Redaction Tests for SignupPool + AppPool GAR-483 ✅ Merged 2026-05-13 via PR #317 (fc138f3)
0115 GAR-604 — DM creation via POST /v1/groups/{id}/chats with type=dm GAR-604 ✅ Merged 2026-05-14 via PR #324 (4ce9d75)
0116 GAR-605 — add actions language to CodeQL matrix (close 15 stale Medium alerts) GAR-605 ✅ Merged 2026-05-14 via PR #323 (f6698c7)
0116a Web Console redesign "Garra Glass" — Chat slice GAR-607 ✅ Merged 2026-05-14 via PRs #330 (foundation), #331 (chat), #332 (right panel)
0116b Web Console multi-page vision GAR-607 ✅ Merged 2026-05-14 via PRs #333, #335, #337, #338, #339, #340 + plan 0123 finalization
0117 GAR-618 — Web Console PR-4: Dashboard page + GET /api/stats GAR-618 ✅ Merged 2026-05-14 via PR #334 (9e9deab)
0118 GAR-612 — Web Console PR-5: /api/health + /api/capabilities GAR-612 ✅ Merged 2026-05-14 via PR #335
0119 GAR-613 — Web Console PR-6: Providers page + /api/providers/{test,default} GAR-613 ✅ Merged 2026-05-14 via PR #337
0120 GAR-614 — Web Console PR-7: Channels + Sessions pages + /api/channels GAR-614 ✅ Merged 2026-05-14 via PR #338
0121 GAR-615 — Web Console PR-8: Settings Registry + /api/settings/{schema,effective} + PATCH /api/settings GAR-615 ✅ Merged 2026-05-14 via PR #339
0122 GAR-616 — Web Console PR-9: Diagnostics + Logs pages + /api/diagnostics GAR-616 ✅ Merged 2026-05-14 via PR #340
0123 GAR-617 — Web Console PR-10: E2E Playwright matrix + ROADMAP/README/CLAUDE finalization GAR-617 ✅ Merged 2026-05-14 via PR #341 (e570631)
0124 GAR-620 — bump metrics 0.24.5 (yanked) → 0.24.6 (health routine 2026-05-14) GAR-620 ✅ Merged 2026-05-14 via PR #336 (adbe00af)
0125 GAR-623 — docs(bookkeeping): plan 0123 / PR #341 self-ref fix — CLAUDE.md + ROADMAP + plans/README GAR-623 ✅ Merged 2026-05-14 via PR #346 (079b2c6)
0126 curl | sh auto-bootstrap PR-A: garraia init foundation TBD ✅ Merged 2026-05-14 via PR #348 (6a2279e)
0127 curl | sh auto-bootstrap PR-B: install.sh wiring TBD ✅ Merged 2026-05-15 via PR #350 (bfddf78)
0128 GAR-470 — Q9.b: extract admin/providers.rs from admin/handlers.rs (3240 → 2900 LOC) GAR-470 ✅ Merged 2026-05-15 via PR #349 (eacbf9b)
0129 GAR-471 — Q9.c: extract admin/mcp.rs from admin/handlers.rs (2900 → 2550 LOC) GAR-471 ✅ Merged 2026-05-15 via PR #354 (17f68d0)
0130 GAR-472 — Q9.d: extract admin/mcp_templates.rs (2550 → 2326 LOC) GAR-472 ✅ Merged 2026-05-15 via PR #358 (1555b70)
0131 GAR-473 — Q9.e: extract admin/observability.rs (2326 → 2103 LOC) GAR-473 ✅ Merged 2026-05-15 via PR #360 (b862b72)
0132 GAR-474 — Q9.g: extract admin/users.rs (2103 → 1738 LOC) GAR-474 ✅ Merged 2026-05-16 via PR #362 (4c97276)
0133 GAR-475 — Q9.f: extract admin/secrets.rs (1738 → ~1270 LOC) — security-audit required GAR-475 ✅ Merged 2026-05-16 via PR #363 (4ab6821)
0134 GAR-634 — Unblock tokio 1.52.3 via nix 0.31.3 + process-wrap 9.1.0 GAR-634 ✅ Merged 2026-05-16 via PR #367 (40ee126)
0135 GAR-635 — Q11 slice 1: extract rest_v1/tasks/task_lists.rs GAR-635 ✅ Merged 2026-05-17 via PR #368 (c01bbd9)
0136 GAR-635 — Q11 slice 2: extract rest_v1/tasks/comments.rs GAR-635 ✅ Merged 2026-05-17 via PR #370 (8872026)
0137 GAR-635 — Q11 slice 3: extract rest_v1/tasks/assignees.rs GAR-635 ✅ Merged 2026-05-17 via PR #371 (efb295c)
0138 GAR-641 — Garra Learning Agent / Self-Improving Operations Manual (epic + ADR 0010) GAR-641 (+10 sub: GAR-642..GAR-651) ✅ Merged 2026-05-17 (planning only, ADR 0010 Proposed at time of merge)
0139 GAR-635 — Q11 slice 4: extract rest_v1/tasks/labels.rs GAR-635 ✅ Merged 2026-05-17 via PR #372 (62036a8)
0140 GAR-653 — Q11 slice 5: extract rest_v1/tasks/subscriptions.rs GAR-653 ✅ Merged 2026-05-17 via PR #376 (1be73cd)
0141 GAR-655 — Q11 slice 6: extract rest_v1/tasks/activity.rs GAR-655 ✅ Merged 2026-05-17 via PR #386 (a82ef2b)
0142 GAR-656 — replace daemonize 0.5 with nix syscalls (RUSTSEC-2025-0069) GAR-656 ✅ Merged 2026-05-17 via PR #382 (a5daf344)
0143 GAR-658 — Q11 slice 7: extract rest_v1/tasks/attachments.rs GAR-658 ✅ Merged 2026-05-17 via PR #388 (e04fc2c)
0144 GAR-642 — Learning Agent Architecture: scaffold crate garraia-learning + ADR 0010 Accepted GAR-642 ✅ Merged 2026-05-18 via PR #393 (9526368)
0145 GAR-372 — Embeddings & Vector Search: scaffold garraia-embeddings GAR-372 ✅ Merged 2026-05-18 via PR #396 (cfda7ad)
0146 GAR-643 — Skill Miner: detect repeatable patterns in session logs GAR-643 ✅ Merged 2026-05-18 via PR #400 (3bb473a)
0147 GAR-644 — Skill Generator: LLM-assisted skill drafting GAR-647 ✅ Merged 2026-05-18 via PR #402 (da65c63)
0148 GAR-645 — Skill Registry: dual-scope persist, list, promote, deprecate GAR-645 ✅ Merged 2026-05-18 via PR #404 (b67d030)
0149 GAR-647 — Skill Evaluator: objective metrics + EMA score update GAR-647 ✅ Merged 2026-05-18 via PR #406 (a79321b)
0150 GAR-648 — Skill Auto-Updater: diff + branch + PR via gh, never auto-merge GAR-648 ✅ Merged 2026-05-18 via PR #409 (0000c883)
0151 GAR-650 — Skill Versioning/Rollback: git-tracked history + git revert GAR-650 ✅ Merged 2026-05-19 via PR #414 (896b2fe)
0152 GAR-668 — Health Run 2 (2026-05-19): RUSTSEC-2026-0145 merged + tokio-tungstenite 0.29 upgrade GAR-668 ✅ Merged 2026-05-19 via PR #433 (51382a9c)
0153 GAR-494 — garra max-power skeleton CLI subcommand GAR-494 ✅ Merged 2026-05-19 via PR #431 (8a9a915)
0154 GAR-497 — Bash Safety Gate: centralize denylist in garraia-common GAR-497 ✅ Merged 2026-05-19 via PR #437 (f2ab1d9)
0155 GAR-501 — garra verify — local idempotent validation pipeline GAR-501 ✅ Merged 2026-05-19 via PR #441 (ca9f1fa2)
0156 GAR-651 — Learning Agent Web UI: skills + learning-logs pages in Garra Glass GAR-651 ✅ Merged 2026-05-20 via PR #443 (21a13f1)
0157 GAR-500 — Auto Dream / handoff via .garra-estado.md GAR-500 ✅ Merged 2026-05-20 via PR #445 (f1fb596)
0158 GAR-669 Slice 1 — rand_chacha 0.9 + rand 0.9 co-bump (garraia-workspace dev-deps) GAR-669 ✅ Merged 2026-05-20 via PR #446 (d9f811ac)
0159 GAR-669 Slice 2 — windows-sys 0.52 → 0.61 (garraia-cli + HANDLE type fix) GAR-669 ✅ Merged 2026-05-20 via PR #451 (1e7ce50)
0160 GAR-495 — Capability prompt nativo: provider-agnostic runtime description for garra max-power GAR-495 ✅ Merged 2026-05-21 via PR #453 (e5a2a08)
0161 GAR-496 — Repo workflow seguro: safe git/gh wrappers with protected-branch + clean-tree guards GAR-496 ✅ Merged 2026-05-21 via PR #455 (1b7f04c)
0162 GAR-678 — REST /v1/chats SSE stream — GET /v1/chats/{id}/stream GAR-678 ✅ Merged 2026-05-21 via PR #459 (d25b64c)
0163 GAR-679 — SSE rate-limit per user on /v1/chats/{id}/stream (DoS hardening) GAR-679 ✅ Merged 2026-05-21 via PR #466 (0513149)
0164 GAR-456 partial fix — jsonwebtoken rust_crypto → aws_lc_rs (removes rsa 0.9.10 from compiled tree) GAR-456 ✅ Merged 2026-05-22 via PR #469 (partial; root blocker deferred to sqlx 0.9+)
0164b GAR-476 — Q10.b: extract bootstrap/channels.rs (44 LOC, zero behaviour change) GAR-476 ✅ Merged 2026-05-22 via PR #470 (f337cb9)
0165 GAR-477 — Q10.c: extract bootstrap/discord.rs (270 LOC, zero behaviour change) GAR-477 ✅ Merged 2026-05-22 via PR #471 (b594ace)
0166 GAR-478 — Q10.d: extract bootstrap/slack.rs (166 LOC, zero behaviour change) GAR-478 ✅ Merged 2026-05-22 via PR #474 (4a51841)
0167 GAR-479 — Q10.e: extract bootstrap/whatsapp.rs (180 LOC, zero behaviour change) GAR-479 ✅ Merged 2026-05-22 via PR #476 (60a8dff)
0168 GAR-480 — Q10.f: extract bootstrap/imessage.rs (123 LOC, macOS-only, zero behaviour change) GAR-480 ✅ Merged 2026-05-23 via PR #484 (b3f62fd)
0169 GAR-513 — deny.toml advisory-not-detected cleanup: remove stale RUSTSEC-2024-0429 + RUSTSEC-2026-0097 from deny.toml, retain in audit.toml GAR-513 ✅ Merged 2026-05-23 via PR #484 (b3f62fd)
0170 GAR-691 — Q10.g: extract bootstrap/telegram.rs (423 LOC, zero behaviour change) GAR-691 ✅ Merged 2026-05-23 via PR #485 (a0b0c99)
0171 GAR-498 — native skill registry slice: brainstorm, write-spec, write-plan, pre-commit, verify as first-class Rust entries in garraia-skills GAR-498 ✅ Merged 2026-05-23 via direct commit (c65e099)
0172 GAR-692 — Health run 20 (2026-05-23): plans 0168+0169 bookkeeping, all surfaces clean, priority (i) GAR-692 ✅ Merged 2026-05-23 via PR #486 (07070f5)
0173 GAR-693 — Health run 21 (2026-05-23): merge run-20 PRs + plan numbering fix, all surfaces clean, priority (i) GAR-693 ✅ Merged 2026-05-23 via PR #489 (133fef8)
0174 GAR-694 — Health run 22 (2026-05-23): all surfaces clean, GAR-499 agent team reviewed clean, priority (i) GAR-694 ✅ Merged 2026-05-23 via PR #491 (d161dd3)
0175 GAR-499 — Agent Team MVP: OrchestratorAgent + ExecutorAgent + ReviewerAgent via mpsc channels, wired into garra max-power GAR-499 ✅ Merged 2026-05-24 via PR #490 (7e45ec5)
0176 GAR-493 — GarraMaxPower ADR 0011: Native Agent-Advanced Mode decision record GAR-493 ✅ Merged 2026-05-24 via PR #492 (95618d3)
0177 GAR-695 — Health run 23 (2026-05-24): all surfaces clean, routine/ PR #492 pending (skipped), priority (i) GAR-695 ✅ Merged 2026-05-24 via PR #493 (3344a04)
0178 GAR-696 — Health run 24 (2026-05-24): all surfaces clean, routine/ PR #496 noted, priority (i) GAR-696 ✅ Merged 2026-05-25 via PR #497 (149b91b)
0179 GAR-697 — Search slice 4: has_attachment filter + migration 020 (message_attachments) GAR-697 ✅ Merged 2026-05-25 via PR #498 (be8c880)
0180 GAR-698 — Health run 25 (2026-05-25): all surfaces clean, routine/ PR #498 noted, priority (i) GAR-698 ✅ Merged 2026-05-25 via PR #499 (61bd6a7)
0181 GAR-699 — Health run 26 (2026-05-25): all surfaces clean, routine/ PR #498 noted, priority (i) GAR-699 ✅ Merged 2026-05-25 via PR #501 (312f046)
0182 GAR-700 — Message Attachments API: POST/GET/DELETE /v1/messages/{id}/attachments GAR-700 ✅ Merged 2026-05-25 via PR #502 (8e44c76)
0183 GAR-701 — Health run 27 (2026-05-25): all surfaces clean, health/ PR #501 run 26 open 20/20 CI green, priority (i) GAR-701 ✅ Merged 2026-05-25 via PR #503 (ba8482b)
0184 GAR-702 — Health run 28 (2026-05-25): all surfaces clean, priority (i) GAR-702 ✅ Merged 2026-05-25 via PR #504 (1b68238)
0185 GAR-703 — Search slice 5: types=files — file name FTS in unified search GAR-703 ✅ Merged 2026-05-25 via PR #505 (bb8c040)
0186 GAR-704 — Health run 29 (2026-05-25): all surfaces clean, routine/ PR #505 noted, priority (i) GAR-704 ✅ Merged 2026-05-25 via PR #507 (ec683e9)
0187 GAR-705 — Health run 30 (2026-05-25): all surfaces clean, PR #506 conflict resolved, priority (i) GAR-705 ✅ Merged 2026-05-25 via PR #508 (ef040ad)
0188 GAR-467 — Q6.5 Mutation Testing — audit_event observability coverage GAR-467 ✅ Merged 2026-05-26 via PR #509 (a1b0fdd)
0189 GAR-706 — Health run 31 (2026-05-25 ~20:45 ET): all surfaces clean, PR #508 run 30 merged, priority (i) GAR-706 ✅ Merged 2026-05-26 via PR #510 (d669b5b)
0190 GAR-708 — wasmtime 44→45 path_open(TRUNCATE) FilePerms bypass fix (health run 32) GAR-708 ✅ Merged 2026-05-26 via PR #528 (ff07bff)
0191 GAR-709 — Health run 33 (2026-05-26 ~00:45 ET): PR #528 GAR-708 merged, all surfaces clean, 11 non-security Dependabot PRs, priority (i) GAR-709 ✅ Merged 2026-05-26 via PR #530 (83dee9a)
0192 GAR-707 — Search slice 6: types=tasks — task title/description FTS in unified search GAR-707 ✅ Merged 2026-05-26 via PR #526 (c902051)
0193 GAR-710 — Search slice 7: types=task_comments — task comment body FTS in unified search GAR-710 ✅ Merged 2026-05-26 via PR #532 (238299d)
0194 GAR-712 — Health run 34 (2026-05-26 ~04:45 ET): all surfaces clean, priority (i) GAR-712 ✅ Merged 2026-05-26 via PR #534 (885ed2e)
0195 GAR-713 — REST /v1 search slice 8: sort_by parameter GAR-713 ✅ Merged 2026-05-26 via PR #535 (bea868b)
0196 GAR-714 — Health run 35 (2026-05-26 ~12:45 ET): all surfaces clean, routine/ PR #535 GAR-713 noted, priority (i) GAR-714 ✅ Merged 2026-05-26 via PR #536 (9a52349)
0197 GAR-715 — Health run 36 (2026-05-26 ~12:45 ET): all surfaces clean, PR #536 GAR-714 run 35 merged, priority (i) GAR-715 ✅ Merged 2026-05-26 via PR #541 (95ed89b)
0198 GAR-717 — Health run 37 (2026-05-26 ~20:45 ET): all surfaces clean, PR #541 GAR-715 run 36 merged, priority (i) GAR-717 ✅ Merged 2026-05-27 via PR #542 (d36d5f4)
0199 GAR-716 — Search slice 9: types=folders — folder name FTS in unified search GAR-716 ✅ Merged 2026-05-27 via PR #540 (d6d0487)
0200 GAR-718 — REST /v1 search slice 10: types=chats — chat name/topic FTS GAR-718 ✅ Merged 2026-05-27 via PR #543 (5472b63)
0201 GAR-719 — Health run 38 (2026-05-27 ~00:45 ET): all surfaces clean, PR #540 GAR-716 slice 9 merged, priority (i) GAR-719 ✅ Merged 2026-05-27 via PR #544 (fa6fe50)
0202 GAR-720 — Health run 39 (2026-05-27 ~04:45 ET): all surfaces clean, routine/ PR #543 GAR-718 noted, priority (i) GAR-720 ✅ Merged 2026-05-27 via PR #545 (61d0514)
0203 GAR-722 — Health run 40 (2026-05-27 ~07:15 ET): all surfaces clean, PR #543 GAR-718 20/20 CI green, priority (i) GAR-722 ✅ Merged 2026-05-27 via PR #546 (fa679e6c)
0204 GAR-723 — Health run 41 (2026-05-27 ~08:45 ET): all surfaces clean, PR #546 GAR-722 run 40 merged, priority (i) GAR-723 ✅ Merged 2026-05-27 via PR #547 (3f7c345)
0205 GAR-724 — Health run 42 (2026-05-27 ~12:50 ET): all surfaces clean, routine/ PR #548 GAR-721 noted, priority (i) GAR-724 ✅ Merged 2026-05-27 via PR #549 (4ad84a1)
0206 GAR-725 — Health run 43 (2026-05-27 ~16:45 ET): all surfaces clean, docker/build-push-action merged, priority (i) GAR-725 ✅ Merged 2026-05-27 via PR #550 (7143a85)
0207 GAR-727 — Health run 44 (2026-05-27 ~20:45 ET): all surfaces clean, 8 non-security Dependabot PRs, priority (i) GAR-727 ✅ Merged 2026-05-27 via PR #551 (d418248)
0208 GAR-721 — Search slice 11: types=task_lists — task list name/description FTS in unified search GAR-721 ✅ Merged 2026-05-27 via PR #548
0209 GAR-728 — Health run 45 (2026-05-27 ~20:45 ET): all surfaces clean, 8 non-security Dependabot PRs, priority (i) GAR-728 ✅ Merged 2026-05-28 via PR #553 (c573a3e)
0210 GAR-729 — Health run 46 (2026-05-28 ~00:45 ET): all surfaces clean, PR #553 GAR-728 merged, routine/ PR #552 GAR-726 noted, priority (i) GAR-729 ✅ Merged 2026-05-28 via PR #554 (e797b3c)
0211 GAR-731 — Health run 47 (2026-05-28 ~03:15 ET): all surfaces clean, cargo audit 0 vulns 19 unmaintained warnings, wasmtime 45.0.0 confirmed clean, priority (i) GAR-731 ✅ Merged 2026-05-28 via PR #557 (a6e368a)
0212 GAR-732 — Health run 48 (2026-05-28 ~08:45 ET): all surfaces clean, PR #557 GAR-731 run 47 merged, priority (i) GAR-732 ✅ Merged 2026-05-28 via PR #559 (1130c4f)
0213 GAR-726 — Search slice 12: types=threads — message thread title FTS in unified search GAR-726 ✅ Merged 2026-05-28 via PR #552 (e897691)
0214 GAR-730 — Search slice 13: types=users — group member display_name FTS in unified search GAR-730 ✅ Merged 2026-05-28 via PR #556 (4e5c3d8)
0215 GAR-733 — Search slice 14: types=groups — group name FTS in unified search GAR-733 ✅ Merged 2026-05-29 via PR #561 (1bb2f10)
0216 GAR-734 — Health run 49 (2026-05-28 ~12:45 ET): all surfaces clean, PR #555 docs dirty, priority (i) GAR-734 ✅ Merged 2026-05-28 via PR #560 (96fb68b)
0217 GAR-735 — Health run 50 (2026-05-28 ~16:45 ET): all surfaces clean, PR #560 GAR-734 merged, priority (i) GAR-735 ✅ Merged 2026-05-28 via PR #562 (d92e57c)
0218 GAR-736 — Health run 51 (2026-05-28 ~20:45 ET): all surfaces clean, PR #562 GAR-735 merged, priority (i) GAR-736 ✅ Merged 2026-05-28 via PR #563 (46eadc5)
0219 GAR-737 — Search slice 15: types=labels — task label name FTS in unified search GAR-737 ✅ Merged 2026-05-29 via PR #564 (e0d3e3e)
0220 GAR-738 — Health run 52 (2026-05-29 ~00:45 ET): all surfaces clean, PR #563 GAR-736 merged, priority (i) GAR-738 ✅ Merged 2026-05-29 via PR #565 (c86d8ef)
0221 GAR-739 — Health run 53 (2026-05-29 ~05:05 ET): all surfaces clean, PR #565 GAR-738 merged, priority (i) GAR-739 ✅ Merged 2026-05-29 via PR #567 (9cb8038)
0222 GAR-741 — Health run 54 (2026-05-29 ~07:10 ET): all surfaces clean, PR #567 GAR-739 merged, priority (i) GAR-741 ✅ Merged 2026-05-29 via PR #569 (fa38656)
0223 GAR-742 — Health run 55 (2026-05-29 ~04:55 ET): all surfaces clean, PR #569 GAR-741 merged, priority (i) GAR-742 ✅ Merged 2026-05-29 via PR #570 (0d3924f)
0224 GAR-743 — Health run 56 (2026-05-29 ~08:45 ET): all surfaces clean, PR #570 GAR-742 merged, priority (i) GAR-743 ✅ Merged 2026-05-29 via PR #571 (ab6e0ee)
0225 GAR-740 — REST /v1 chats slice 6: GET /v1/chats/{chat_id}/threads — list threads in a chat GAR-740 ✅ Merged 2026-05-29 via PR #574 (3fa24d3)
0226 GAR-744 — Health run 57 (2026-05-29 ~12:49 ET): all surfaces clean, PR #571 GAR-743 merged, priority (i) GAR-744 ✅ Merged 2026-05-29 via PR #574 (3fa24d3)
0227 GAR-745 — Chats slice 7: PATCH /v1/threads/{id} (resolve/title) + PATCH /v1/chats/{id}/members/{uid} (muted/last_read/role) GAR-745 ✅ Merged 2026-05-30 via PR #575 (0778ff3)
0228 GAR-746 — Health run 58 (2026-05-29 ~20:46 ET): all surfaces clean, PR #573 closed superseded, priority (i) GAR-746 ✅ Merged 2026-05-29 via PR #576 (3dbe48c)
0229 GAR-748 — Health run 59 (2026-05-29 ~20:48 ET): all surfaces clean, routine/ PR #575 noted, priority (i) GAR-748 ✅ Merged 2026-05-30 via PR #579 (358b3d4)
0230 GAR-749 — Health run 60 (2026-05-30 ~00:46 ET): all surfaces clean, PR #578 closed superseded, priority (i) GAR-749 ✅ Merged 2026-05-30 via PR #581 (4986c1f)
0231 GAR-747 — Chats slice 8: message reactions — POST/DELETE/GET /v1/messages/{id}/reactions GAR-747 ✅ Merged 2026-05-30 via PR #580 (86d8c55)
0232 GAR-751 — Health run 62 (2026-05-30 ~08:46 ET): all surfaces clean, run 61 bare note, priority (i) GAR-751 ✅ Merged 2026-05-30 via PR #583 (593f029)
0233 GAR-752 — Chats slice 9: POST /v1/chats/{chat_id}/typing — typing indicators via SSE GAR-752 ✅ Merged 2026-05-30 via PR #586 (9a1664a)
0234 GAR-753 — Health run 63 (2026-05-30 ~08:49 ET): all surfaces clean, priority (i) GAR-753 ✅ Merged 2026-05-30 via PR #585 (07db8f6)
0235 GAR-754 — Health run 64 (2026-05-30 ~12:50 ET): all surfaces clean, priority (i) GAR-754 ✅ Merged 2026-05-30 via PR #589 (fb9df70)
0236 GAR-756 — Health run 65 (2026-05-30 ~20:45 ET): PR #588 closed superseded, all surfaces clean, priority (i) GAR-756 ✅ Merged 2026-05-30 via PR #590 (f372a55)
0237 GAR-755 — Chats slice 10: @mentions — migration 022 + POST /v1/chats/{id}/messages mentions field + GET /v1/me/mentions GAR-755 ✅ Merged 2026-05-31 via PR #591 (21f7f55)
0238 GAR-757 — Health run 66 (2026-05-31 ~00:47 ET): all surfaces clean, priority (i) GAR-757 ✅ Merged 2026-05-31 via PR #592 (6fd3c9b)
0239 GAR-758 — Health run 67 (2026-05-31 ~00:46 ET): all surfaces clean, priority (i) GAR-758 ✅ Merged 2026-05-31 via PR #593 (e317136)
0240 GAR-761 — Health run 69 (2026-05-31 ~08:45 ET): all surfaces clean, priority (i) GAR-761 ✅ Merged 2026-05-31 via PR #596 (1a4a15f)
0241 GAR-759 — Chats slice 11: Bot Garra no chat — /garra detection + AgentRuntime async reply GAR-759 ✅ Merged 2026-05-31 via PR #595 (22fddb9)
0242 GAR-763 — GET /v1/me/tasks (caller-scoped task inbox) GAR-763 ✅ Merged 2026-05-31 via PR #598 (f732cb5)
0243 GAR-762 — Health run 70 (2026-05-31 ~12:45 ET): PR #594 closed superseded, all surfaces clean, priority (i) GAR-762 ✅ Merged 2026-05-31 via PR #597 (b66f6db)
0244 GAR-764 — Health run 71 (2026-05-31 ~17:05 ET): PR #597+#599 merged, all surfaces clean, priority (i) GAR-764 ✅ Merged 2026-05-31 via PR #600 (5e126b1)
0245 GAR-765 — GET /v1/me/chats (caller-scoped chat membership inbox) GAR-765 ✅ Merged 2026-05-31 via PR #601 (2bf1f5b)
0246 GAR-767 — GET /v1/me/files (caller-scoped uploaded-files inbox) GAR-767 ✅ Merged 2026-06-01 via PR #603
0247 GAR-768 — Health run 72 (2026-05-31 ~20:45 ET): all surfaces clean, priority (i) GAR-768 ✅ Merged 2026-06-01 via PR #604 (5f08141)
0248 GAR-769 — Health run 73 (2026-06-01 ~00:45 ET): all surfaces clean, priority (i) GAR-769 ✅ Merged 2026-06-01 via PR #607 (b2848a8)
0249 GAR-770 — GET /v1/me/memory (caller-scoped personal memory inbox) GAR-770 ✅ Merged 2026-06-01 via PR #608 (ec6922c)
0250 GAR-771 — Persona amistosa do Garra (inspirado em OpenHuman): persona default + copy humanizada + erros amigáveis GAR-771 ✅ Merged 2026-06-01 via PR #610 (cbdc702)
0251 GAR-771 — Health run 74 (2026-06-01 ~08:45 ET): PR #610 persona merged, all surfaces clean, priority (i) GAR-771 ✅ Merged 2026-06-01 via PR #611 (3dd4ce3)
0252 GAR-711 — Upgrade OpenTelemetry 0.26 → 0.32 (RUSTSEC-2025-0052 async-std) GAR-711 ✅ Merged 2026-06-01 via PR #614 (138d89f)
0253 GAR-774 — Health run 75 (2026-06-01 ~20:45 ET): Q6.11 extractor unit tests — kill 4 security-bypass mutations GAR-774 ✅ Merged 2026-06-02 via PR #616 (67700a0)
0254 GAR-775 — Q6.12: kill is_unique_violation positive-case + fix broken mutants::skip on redact_urls GAR-775 ✅ Merged 2026-06-02 via PR #618 (20f8979)
0255 GAR-777 — GET /v1/me/invites pending group invites inbox GAR-777 ✅ Merged 2026-06-02 via PR #621 (762d63c)
0256 GAR-778 — Health run 76 (2026-06-02 ~09:10 ET): restore Node.js 24 action versions regressed by PR #561 (checkout@v4→v6) GAR-778 ✅ Merged 2026-06-02 via PR #622 (43b1fd0)
0257 GAR-780 — GET + DELETE /v1/groups/{id}/invites/{invite_id} (invite revocation) GAR-780 ✅ Merged 2026-06-03 via PR #625 (46a8658)
0258 GAR-783 — POST /v1/me/invites/{invite_id}/decline (invitee-side invite decline) GAR-783 ✅ Merged 2026-06-03 via PR #632 (593206f)
0259 GAR-784+GAR-785 — lopdf 0.34→0.40 + rand_chacha 0.9→0.10 compat fixes GAR-784 + GAR-785 ✅ Merged 2026-06-03 via PR #634 (fa8e3c0)
0260 GAR-788 — GET /v1/me/reactions — emoji-reactions inbox GAR-788 ✅ Merged 2026-06-03 via PR #637 (5ddb2ed)
0261 GAR-790 — GET /v1/me/threads — caller-scoped thread participation inbox GAR-790 ✅ Merged 2026-06-03 via PR #638 (9a36727)
0262 GAR-789 — Drop stale RUSTSEC-2026-0097 (rand 0.7.3) from audit.toml GAR-789 ✅ Done (PR #640 / 9f3e760)
0263 GAR-794 — POST /v1/me/invites/{invite_id}/accept (invitee-side authenticated invite acceptance) GAR-794 ✅ Merged 2026-06-05 via PR #642 (cec4545)
0264 GAR-795 — PATCH /v1/groups/{group_id}/tasks/{task_id}/comments/{comment_id} (edit task comment body) GAR-795 ✅ Merged 2026-06-05 via PR #644 (6974812)
0265 GAR-798 — GET /v1/threads/{thread_id} — fetch single thread detail GAR-798 ✅ Merged PR #646 (7913904)
0266 GAR-800 — PATCH /v1/groups/{group_id}/task-labels/{label_id} (edit task label name/color) GAR-800 ✅ Merged PR #649 (28d052a)
0267 GAR-802 — GET /v1/groups/{group_id}/task-labels/{label_id} (fetch single task label) GAR-802 ✅ Merged PR #651 (afe02ce)
0268 GAR-805 — Health run 85 (2026-06-06 ~12:47 ET): all surfaces clean, priority (i) GAR-805 ✅ Merged 2026-06-06 via PR #654 (99448bb)
0269 GAR-806 — GET /v1/groups/{group_id}/tasks/{task_id}/comments/{comment_id} (fetch single task comment) GAR-806 ✅ Merged 2026-06-06 via PR #655 (760dfd8)
0270 GAR-807 — Health run 86 (2026-06-06 ~16:46 ET): PR #656 merged, all surfaces clean, priority (i) GAR-807 ✅ Merged 2026-06-06 via PR #657 (a4d365f)
0271 GAR-808 — GET /v1/groups/{group_id}/tasks/{task_id}/labels — list labels assigned to a task GAR-808 ✅ Merged 2026-06-07 via PR #659 (d7d8a82)
0272 GAR-809 — Health run 87 (2026-06-07 ~20:45 ET): all surfaces clean, priority (i) GAR-809 ✅ Merged 2026-06-07 via PR #660 (95e2860)
0273 GAR-810 — Health run 88 (2026-06-07 ~00:45 ET): all surfaces clean, priority (i) GAR-810 ✅ Merged via PR #662 (9b529dd)
0274 GAR-812 — Health run 89 (2026-06-07 ~04:15 ET): all surfaces clean, priority (i) GAR-812 ✅ Merged via PR #665 (75c311ab)
0275 GAR-813 — Health run 90 (2026-06-07 ~04:45 ET): all surfaces clean, priority (i) GAR-813 ✅ Merged via PR #667 (f254585)
0276 GAR-815 — Health run 91 (2026-06-07 ~12:47 ET): all surfaces clean, priority (i) GAR-815 ✅ Merged via PR #670 (d3c3324)
0277 GAR-816 — Health run 92 (2026-06-07 ~12:45 ET): all surfaces clean, priority (i) GAR-816 ✅ Merged via PR #671 (be1ccdf5)
0278 GAR-811 — POST /v1/threads/{thread_id}/messages (thread reply) GAR-811 ✅ Merged via PR #664 (6b168f3)
0279 GAR-814 — GET /v1/threads/{thread_id}/messages (list replies by thread_id) GAR-814 ✅ Merged 2026-06-08 via PR #675 (b30d18e)
0280 GAR-817 — Health run 93 (2026-06-07 ~20:47 ET): all surfaces clean, priority (i) GAR-817 ✅ Merged via PR #673 (cf16c4e)
0281 GAR-818 — Health run 94 (2026-06-07 ~21:01 ET): all surfaces clean, priority (i) GAR-818 ✅ Merged via PR #676 (4e2c2a4)
0282 GAR-819 — Health run 95 (2026-06-08 ~00:45 ET): all surfaces clean, priority (i) GAR-819 ✅ Merged via PR #677 (5f8540f)
0283 GAR-820 — Health run 96 (2026-06-08 ~03:09 ET): all surfaces clean, priority (i) GAR-820 ✅ Merged via PR #681 (a6b6343)
0284 GAR-822 — fix(ci): cache swagger-ui zip to eliminate utoipa-swagger-ui reqwest build failure (health run 97) GAR-822 ✅ Done — PR #682 5f0dfeb
0285 GAR-820 — GET /v1/groups/{group_id}/files/{file_id}/versions/{version} (fetch single file version) GAR-820 ✅ Merged via PR #680 (3d4ae04)
0286 GAR-823 — GET /v1/groups/{group_id}/members/{user_id} (fetch single group member) GAR-823 ✅ Merged via PR #683 (91ce9b0)
0287 GAR-824 — Q6.13: mutation testing 2026-06-08 — kill sessions.rs ct_eq/expiry mutations + pool Debug skips (health run 98) GAR-824 ✅ Merged via PR #684 (8f5ab8f)
0288 GAR-827 — PATCH /v1/groups/{group_id}/tasks/{task_id}/subscriptions — update muted flag GAR-827 ✅ Done (PR #690 2bde6a6)
0289 GAR-828 — Health run 101 (2026-06-09 ~00:45 ET): all surfaces clean, Dependabot tauri resolver noted, priority (i) GAR-828 ✅ Merged 2026-06-09 via PR #691 (6c3eb62)
0290 GAR-829 — Health run 102 (2026-06-09 ~01:00 ET): PR #691 merged, all surfaces clean, priority (i) GAR-829 ✅ Merged 2026-06-09 via PR #693 (7100851)
0292 GAR-830 — Health run 103 (2026-06-09 ~07:15 ET): all surfaces clean, priority (i) GAR-830 ✅ Merged 2026-06-09 via PR #697 (dd96289)
0293 GAR-831 — Health run 104 (2026-06-09 ~04:46 ET): all surfaces clean, PRs #695+#697 merged, priority (i) GAR-831 ✅ Merged via PR #698 (7f0f8e6)
0294 GAR-825 — Q6.14: 3-way shard + --features test-support in mutants.yml GAR-825 ✅ Merged via PR #701 (6060116)
0295 GAR-832 — Health run 105 (2026-06-09 ~08:45 ET): all surfaces clean, priority (i) GAR-832 ✅ Merged 2026-06-09 via PR #702 (3cc8771)
0296 GAR-833 — Health run 106 (2026-06-09 ~12:45 ET): all surfaces clean, priority (i) GAR-833 ✅ Merged via PR #704 (7b0bade)
0297 GAR-835 — Docs Tier 2 scaffold: migration 026 + POST/GET /v1/groups/{group_id}/doc-pages GAR-835 ✅ Merged 2026-06-10 via PR #706 (54f88bc)
0298 GAR-836 — Health run 107 (2026-06-09 ~20:47 ET): all surfaces clean, priority (i) GAR-836 ✅ Merged via PR #707 (7a20572)
0299 GAR-838 — Health run 108 (2026-06-10 ~00:45 ET): all surfaces clean, priority (i) GAR-838 ✅ Merged via PR #710 (8495527)
0300 GAR-839 — Health run 109 (2026-06-10 ~04:45 ET): PR #710 merged, all surfaces clean, priority (i) GAR-839 ✅ Merged 2026-06-10 via PR #711 (59a13e7)
0301 GAR-837 — GET/PATCH/DELETE /v1/doc-pages/{page_id} — Docs Tier 2 single-page CRUD GAR-837 ✅ Merged 2026-06-10 via PR #709 (ed1093f)
0302 GAR-841 — Health run 110 (2026-06-10 ~07:07 ET): all surfaces clean, priority (i) GAR-841 ✅ Merged 2026-06-10 via PR #713 (5662253)
0303 GAR-842 — Health run 111 (2026-06-10 ~08:45 ET): PR #713 merged, all surfaces clean, priority (i) GAR-842 ✅ Merged 2026-06-10 via PR #714 (6c3ce88)
0304 GAR-840 — POST/GET /v1/doc-pages/{page_id}/blocks + PATCH/DELETE /v1/doc-blocks/{block_id} — Docs Tier 2 blocks CRUD (migration 027) GAR-840 ✅ Merged 2026-06-10 via PR #712 (c1aa9ec)
0305 GAR-843 — Health run 112 (2026-06-10 ~12:45 ET): all surfaces clean, priority (i) GAR-843 ✅ Merged 2026-06-10 via PR #715 (343597a)
0306 GAR-844 — garra-routine-trigger.yml: add retry on transient 401 (gh issue list) GAR-844 ✅ Merged 2026-06-10 via PR #716 (3f33d5a)
0307 GAR-845 — POST/GET /v1/doc-pages/{page_id}/versions + GET /v1/doc-pages/{page_id}/versions/{version_id} — Docs Tier 2 page versions (migration 028) GAR-845 ✅ Merged 2026-06-11 via PR #717 (4105473)
0308 GAR-846 — Health run 113 (2026-06-10 ~20:45 ET): PR #716 merged, all surfaces clean, priority (i) GAR-846 ✅ Merged 2026-06-10 via PR #718 (128627a)
0309 GAR-847 — POST /v1/doc-pages/{page_id}/duplicate — Docs Tier 2 page duplication GAR-847 ✅ Merged 2026-06-11 via PR #720 (d8e80e2)
0310 GAR-848 — Health run 114 (2026-06-11 ~00:45 ET): all surfaces clean, priority (i) GAR-848 ✅ Merged 2026-06-11 via PR #721 (de123ec)
0311 GAR-849 — Health run 115 (2026-06-11 ~04:45 ET): PR #721 merged, all surfaces clean, priority (i) GAR-849 ✅ Merged 2026-06-11 via PR #722 (2a58538)
0312 GAR-850 — POST /v1/doc-pages/{page_id}/versions/{version_id}/restore — Docs Tier 2 version restore GAR-850 ✅ Merged 2026-06-11 via PR #723 (198e3fb)
0313 GAR-852 — Health run 116 (2026-06-11 ~07:05 ET): PR #722 merged, all surfaces clean, priority (i) GAR-852 ✅ Merged 2026-06-11 via PR #724 (ead6f6c)
0314 GAR-853 — GET /v1/doc-blocks/{block_id} — Docs Tier 2 single block fetch GAR-853 ✅ Merged 2026-06-11 via PR #725 (7f13deb)
0315 GAR-854 — Health run 117 (2026-06-11 ~08:45 ET): PR #724 merged, all surfaces clean, priority (i) GAR-854 ✅ Merged 2026-06-11 via PR #726 (6575f88)
0316 GAR-855 — Health run 118 (2026-06-11 ~12:45 ET): all surfaces clean, priority (i) GAR-855 ✅ Merged 2026-06-11 via PR #727 (709da2b)
0317 GAR-856 — GET /v1/search?types=doc_pages,doc_blocks — Search slices 16+17: Docs Tier 2 unified search GAR-856 ✅ Merged (#728 · 0af46b9)
0318 GAR-857 — Health run 119 (2026-06-12 ~00:45 ET): all surfaces clean, priority (i) GAR-857 ✅ Merged 2026-06-12 via PR #731 (f13e868)
0319 GAR-859 — Health run 120 (2026-06-12 ~00:45 ET): all surfaces clean, priority (i) GAR-859 ✅ Merged 2026-06-12 via PR #732 (a7a73aa)
0320 GAR-858 — doc_page_mentions: migration 029, REST handlers, inbox endpoint, OpenAPI wiring GAR-858 ✅ Merged 2026-06-12 via PR #730 (cf8be02)
0321 GAR-861 — Health run 121 (2026-06-12 ~04:45 ET): all surfaces clean, priority (i) GAR-861 ✅ Merged 2026-06-12 via PR #733 (dcb12c6)
0322 GAR-860 — GET /v1/me/doc-pages — caller-scoped authored doc pages inbox GAR-860 ✅ Merged 2026-06-12 via PR #735 (21e52ec)
0323 GAR-863 — Health run 122 (2026-06-12 ~16:45 ET): all surfaces clean, priority (i) GAR-863 ✅ Merged 2026-06-12 via PR #736 (f75a51c)
0324 GAR-865 — Health run 123 (2026-06-12 ~20:45 ET): all surfaces clean, priority (i) GAR-865 ✅ Merged 2026-06-12 via PR #739 (4b18dcf)
0325 GAR-864 — GET /v1/chats/{chat_id}/members/{user_id} — fetch single chat member GAR-864 ✅ Merged 2026-06-12 via PR #738 (1d3142f)
0326 GAR-867 — Health run 124 (2026-06-13 ~00:45 ET): all surfaces clean, priority (i) GAR-867 ✅ Merged 2026-06-13 via PR #744 (76d6808)
0327 GAR-866 — GET /v1/me/sessions + DELETE /v1/me/sessions/{session_id} — list and revoke active sessions GAR-866 ✅ Merged 2026-06-13 via PR #742 (fc5d996)
0328 GAR-869 — DELETE /v1/me/sessions — revoke all active sessions ("sign out from all devices") GAR-869 ✅ Merged 2026-06-13 via PR #747 (ed38d1a)
0329 GAR-868 — Health run 125 (2026-06-13 ~04:45 ET): all surfaces clean, priority (i) GAR-868 ✅ Merged 2026-06-13 via PR #746 (0691153)
0330 GAR-870 — Health run 126 (2026-06-13 ~08:45 ET): all surfaces clean, priority (i) GAR-870 ✅ Merged 2026-06-13 via PR #749 (1f36836)
0331 GAR-871 — POST/GET /v1/me/api-keys + DELETE /v1/me/api-keys/{key_id} GAR-871 ✅ Merged 2026-06-13 via PR #751 (b63a2d4)
0332 GAR-872 — Health run 127 (2026-06-13 ~12:45 ET): all surfaces clean, priority (i) GAR-872 ✅ Merged 2026-06-13 via PR #752 (bca5a36)
0333 GAR-873 — Health run 128 (2026-06-13 ~16:45 ET): all surfaces clean, priority (i) GAR-873 ✅ Merged 2026-06-13 via PR #754 (a1ce9c6)
0334 GAR-874 — PATCH /v1/me/api-keys/{key_id} — update API key label/scopes GAR-874 ✅ Merged 2026-06-13 via PR #755 (9e36b47)
0335 GAR-876 — PATCH /v1/me/password — self-service password change GAR-876 ✅ Merged 2026-06-14 via PR #757 (0c9a024)
0336 GAR-877 — Health run 130 (2026-06-14 ~00:45 ET): all surfaces clean, priority (i) GAR-877 ✅ Merged 2026-06-14 via PR #758 (02dc199)
0337 GAR-878 — Health run 131 (2026-06-14 ~00:48 ET): all surfaces clean, priority (i) GAR-878 ✅ Merged 2026-06-14 via PR #760 (e3044c29)
0338 GAR-879 — Health run 132 (2026-06-14 ~02:27 ET): all surfaces clean, priority (i) GAR-879 ✅ Merged 2026-06-14 via PR #763 (7425541)
0339 GAR-880 — Health run 133 (2026-06-14 ~08:45 ET): all surfaces clean, priority (i) GAR-880 ✅ Merged 2026-06-14 via PR #764 (0cba31c)
0340 GAR-881 — GET /v1/me/audit — personal audit trail GAR-881 ✅ Merged 2026-06-14 via PR #766 (cf20882)
0341 GAR-882 — Health run 134 (2026-06-14 ~12:45 ET): all surfaces clean, priority (i) GAR-882 ✅ Merged 2026-06-14 via PR #769 (a88efb1)
0342 GAR-883 — Health run 135 (2026-06-14 ~20:45 ET): all surfaces clean, priority (i) GAR-883 ✅ Merged 2026-06-14 via PR #772 (c7448dd)
0343 GAR-884 — DELETE /v1/me — self-service account soft-deletion (LGPD/GDPR right to erasure) GAR-884 ✅ Merged 2026-06-15 via PR #771 (137f16c)
0344 GAR-885 — GET /v1/me/export — personal data export (LGPD art. 20 / GDPR arts. 15 & 20) GAR-885 ✅ Merged 2026-06-15 via PR #774 (a00f480)
0345 GAR-888 — POST /v1/me/anonymize — LGPD art. 12 / GDPR art. 4(5) personal data anonymization GAR-888 ✅ Merged 2026-06-15 via PR #777 (46e2733)
0346 GAR-890 — DELETE /v1/groups/{id} — owner-only group soft-deletion GAR-890 ✅ Merged 2026-06-15 via PR #779 (d67563d)
0347 GAR-891 — Q6.15: kill 4 missed mutants in password.rs + audit_workspace.rs (health run 137) GAR-891 ✅ Merged 2026-06-15 via PR #780 (f622d9c)
0348 GAR-892 — Health run 144 (2026-06-15 ~12:45 ET): 4 non-security Dependabot PRs all CI-green, priority (i) GAR-892 ✅ Merged 2026-06-15 via PR #785 (fb7903a)
0349 GAR-893 — Health run 145 (2026-06-15 ~20:45 ET): all surfaces clean, sqlx compat noted, priority (i) GAR-893 ✅ Merged 2026-06-15 via PR #786 (d12478e)
0350 GAR-894 — chore(deps): split sqlx runtime-tokio-native-tls → runtime-tokio + tls-native-tls (workspace root compat) GAR-894 🔄 In progress