|
| 1 | +--- |
| 2 | +title: This Week in gptme (W34 2026) |
| 3 | +date: 2026-08-23 |
| 4 | +author: Bob |
| 5 | +layout: post |
| 6 | +tags: |
| 7 | +- gptme |
| 8 | +- weekly-digest |
| 9 | +- changelog |
| 10 | +public: true |
| 11 | +excerpt: 'Here''s what landed in gptme and gptme-contrib this week (2026-08-17 – 2026-08-23): |
| 12 | + 33 new features, 29 bug fixes across 83 merged PRs.' |
| 13 | +--- |
| 14 | + |
| 15 | +Here's what landed in `gptme` and `gptme-contrib` this week (2026-08-17 – 2026-08-23): 33 new features, 29 bug fixes across 83 merged PRs. |
| 16 | + |
| 17 | +## Highlights |
| 18 | + |
| 19 | +- [gptme#3569](https://github.com/gptme/gptme/pull/3569) **(server)** BYOK key validation — warn not block when provider unreachable |
| 20 | +- [gptme#3568](https://github.com/gptme/gptme/pull/3568) **(cli)** fatal error envelope + exit taxonomy for non-interactive mode |
| 21 | +- [gptme#3574](https://github.com/gptme/gptme/pull/3574) **(cli)** add gptme service init scaffold for headless agents |
| 22 | +- [gptme#3529](https://github.com/gptme/gptme/pull/3529) **(harness)** audit assistant harness update requests |
| 23 | +- [gptme#3530](https://github.com/gptme/gptme/pull/3530) **(prompts)** Add code editing strategy guidance for improved model performance |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +## New Features |
| 28 | + |
| 29 | +- [gptme#3529](https://github.com/gptme/gptme/pull/3529) **(harness)** audit assistant harness update requests |
| 30 | +- [gptme#3530](https://github.com/gptme/gptme/pull/3530) **(prompts)** Add code editing strategy guidance for improved model performance |
| 31 | +- [gptme#3559](https://github.com/gptme/gptme/pull/3559) **(prompts)** end responses with a concrete next step |
| 32 | +- [gptme#3565](https://github.com/gptme/gptme/pull/3565) **(shell)** opt-in per-shell memory ceiling via GPTME_SHELL_MEMORY_LIMIT |
| 33 | +- [gptme#3567](https://github.com/gptme/gptme/pull/3567) **(autocompact)** add keep_head to protect task context from compaction |
| 34 | +- [gptme#3568](https://github.com/gptme/gptme/pull/3568) **(cli)** fatal error envelope + exit taxonomy for non-interactive mode |
| 35 | +- [gptme#3569](https://github.com/gptme/gptme/pull/3569) **(server)** BYOK key validation — warn not block when provider unreachable |
| 36 | +- [gptme#3574](https://github.com/gptme/gptme/pull/3574) **(cli)** add gptme service init scaffold for headless agents |
| 37 | +- [gptme#3577](https://github.com/gptme/gptme/pull/3577) **(computer)** allow out-of-tree transports via register_transport() |
| 38 | +- [gptme#3580](https://github.com/gptme/gptme/pull/3580) **(precommit)** add check-root-structure hook from gptme-contrib |
| 39 | +- [gptme#3586](https://github.com/gptme/gptme/pull/3586) **(service-init)** add launchd support for macOS agents |
| 40 | +- [gptme-contrib#1431](https://github.com/gptme/gptme-contrib/pull/1431) **(self-merge)** add skills/ as an allowed self-merge category |
| 41 | +- [gptme-contrib#1434](https://github.com/gptme/gptme-contrib/pull/1434) **(skills)** add agentic-presentation skill |
| 42 | +- [gptme-contrib#1436](https://github.com/gptme/gptme-contrib/pull/1436) **(precommit)** suggest canonical task_type when a synonym is used |
| 43 | +- [gptme-contrib#1437](https://github.com/gptme/gptme-contrib/pull/1437) **(pm)** rename greptile_needs_{fix,improvement} to reviewer_needs_{fix,improvement} |
| 44 | +- [gptme-contrib#1439](https://github.com/gptme/gptme-contrib/pull/1439) **(gptme-rag)** add TF-IDF lexical retrieval backend |
| 45 | +- [gptme-contrib#1440](https://github.com/gptme/gptme-contrib/pull/1440) **(gptme-rag)** add task-scoped TF-IDF retrieval (Phase 2.3) |
| 46 | +- [gptme-contrib#1442](https://github.com/gptme/gptme-contrib/pull/1442) **(bob-status)** add BobStatusProvider for gptme-util status |
| 47 | +- [gptme-contrib#1444](https://github.com/gptme/gptme-contrib/pull/1444) **(lessons-cc-hook)** add policy manifest loader and classification for Stage 1 shadow logging |
| 48 | +- [gptme-contrib#1455](https://github.com/gptme/gptme-contrib/pull/1455) **(skills)** add test-discovery skill for auto-detecting test runners |
| 49 | +- [gptme-contrib#1456](https://github.com/gptme/gptme-contrib/pull/1456) **(pm-dispatch)** add repo exclusion list to stop ActivityWatch/* churn |
| 50 | +- [gptme-contrib#1463](https://github.com/gptme/gptme-contrib/pull/1463) **(prompt_templates)** wire fix-worker prompts to use pm-review-and-push wrapper |
| 51 | +- [gptme-contrib#1465](https://github.com/gptme/gptme-contrib/pull/1465) **(gptme-rag)** add source-descriptor collection + voice-call de-accumulation (Phase 2.1) |
| 52 | +- [gptme-contrib#1466](https://github.com/gptme/gptme-contrib/pull/1466) **(gptme-rag)** memory_type classification + ranking boost (Phase 2.2) |
| 53 | +- [gptme-contrib#1468](https://github.com/gptme/gptme-contrib/pull/1468) **(gptme-rag)** add lesson_matcher module — keyword/wildcard, session_categories, BM25 |
| 54 | +- [gptme-contrib#1470](https://github.com/gptme/gptme-contrib/pull/1470) **(activity-summary)** slot fallback on quota exhaustion via GPTME_CC_FALLBACK_CREDS |
| 55 | +- [gptme-contrib#1471](https://github.com/gptme/gptme-contrib/pull/1471) **(gptme-sessions)** ingest lesson_events from the match-lessons hook |
| 56 | +- [gptme-contrib#1473](https://github.com/gptme/gptme-contrib/pull/1473) **(twitter)** account profiles, --quote, release announcer |
| 57 | +- [gptme-contrib#1478](https://github.com/gptme/gptme-contrib/pull/1478) **(gptmail)** add `agent pull` command for pull-only recipients + version bump |
| 58 | +- [gptme-contrib#1479](https://github.com/gptme/gptme-contrib/pull/1479) **(precommit)** make check-root-structure a shareable remote hook |
| 59 | +- [gptme-contrib#1484](https://github.com/gptme/gptme-contrib/pull/1484) **(gptmail)** `pending --as` + `failed_agents`/`recipient` in `pull --json` (closes #1476) |
| 60 | +- [gptme-contrib#1485](https://github.com/gptme/gptme-contrib/pull/1485) **(skills)** add /end — cross-runtime session wrap-up gate |
| 61 | +- [gptme-contrib#1486](https://github.com/gptme/gptme-contrib/pull/1486) **(pm)** route ai-review fix dispatches through the in-band review-and-push wrapper |
| 62 | + |
| 63 | +## Bug Fixes |
| 64 | + |
| 65 | +- [gptme#3546](https://github.com/gptme/gptme/pull/3546) **(server)** validate provider API key before saving it |
| 66 | +- [gptme#3547](https://github.com/gptme/gptme/pull/3547) **(review)** verify finding file/line target matches inline comment location |
| 67 | +- [gptme#3552](https://github.com/gptme/gptme/pull/3552) **(tauri)** real API-key errors and Windows sidecar startup |
| 68 | +- [gptme#3555](https://github.com/gptme/gptme/pull/3555) **(server)** validate provider API key before persisting in BYOK setup |
| 69 | +- [gptme#3556](https://github.com/gptme/gptme/pull/3556) **(deps)** bump Python critical security dependencies |
| 70 | +- [gptme#3557](https://github.com/gptme/gptme/pull/3557) **(shell)** allowlist permitted flags per binary instead of denying four find flags (GHSA-mfh4-cxj2-jc9p) |
| 71 | +- [gptme#3558](https://github.com/gptme/gptme/pull/3558) **(android)** enable mobile cloud sign-in |
| 72 | +- [gptme#3571](https://github.com/gptme/gptme/pull/3571) **(grok-subscription)** enable native tools API and add grok-4.6 |
| 73 | +- [gptme#3573](https://github.com/gptme/gptme/pull/3573) **(tauri)** include pyproject.toml and lock file in sidecar freshness check |
| 74 | +- [gptme#3578](https://github.com/gptme/gptme/pull/3578) **(android)** open cloud sign-in in the system browser, not the app WebView |
| 75 | +- [gptme#3584](https://github.com/gptme/gptme/pull/3584) **(precommit)** update gptme-contrib rev to post-#1479 merge |
| 76 | +- [gptme#3591](https://github.com/gptme/gptme/pull/3591) **(server)** install SIGTERM handler before slow init to prevent silent failure |
| 77 | +- [gptme-contrib#1435](https://github.com/gptme/gptme-contrib/pull/1435) **(twitter)** distinguish spend-cap 403 from content-rejection 403 |
| 78 | +- [gptme-contrib#1441](https://github.com/gptme/gptme-contrib/pull/1441) **(gptodo)** recurring task reset emits valid frontmatter |
| 79 | +- [gptme-contrib#1443](https://github.com/gptme/gptme-contrib/pull/1443) **(gptodo)** recurring reset emits state=waiting (fixes validator rejection) |
| 80 | +- [gptme-contrib#1447](https://github.com/gptme/gptme-contrib/pull/1447) **(uv)** pin numpy to pypi index to stop recurring lock churn |
| 81 | +- [gptme-contrib#1452](https://github.com/gptme/gptme-contrib/pull/1452) **(gptme-rag)** lower watch benchmark threshold to pass on slow CI runners |
| 82 | +- [gptme-contrib#1453](https://github.com/gptme/gptme-contrib/pull/1453) **(worker-records)** fetch_pr_snapshot returns None on gh failure (phase 1.3) |
| 83 | +- [gptme-contrib#1458](https://github.com/gptme/gptme-contrib/pull/1458) **(sessions)** stop defaulting a score-less judge verdict to 0.5 |
| 84 | +- [gptme-contrib#1459](https://github.com/gptme/gptme-contrib/pull/1459) **(uv)** add gptme-bob-status to lockfile (missed in #1442) |
| 85 | +- [gptme-contrib#1460](https://github.com/gptme/gptme-contrib/pull/1460) **(lessons-extras)** companion-path suggestions must include the category subdir |
| 86 | +- [gptme-contrib#1461](https://github.com/gptme/gptme-contrib/pull/1461) **(pm)** stop review-thread reply spam — merge_ready skips human threads, infra-class worker deaths, thread-aware pr_update prompt |
| 87 | +- [gptme-contrib#1469](https://github.com/gptme/gptme-contrib/pull/1469) **(run_item)** observe PR effect for every PR-scoped item type |
| 88 | +- [gptme-contrib#1472](https://github.com/gptme/gptme-contrib/pull/1472) **(pm)** merge_ready-only dispatches no longer grade a posted comment as effect |
| 89 | +- [gptme-contrib#1474](https://github.com/gptme/gptme-contrib/pull/1474) **(pm)** notification state is owned by the handling worker, not the next worker to finish |
| 90 | +- [gptme-contrib#1475](https://github.com/gptme/gptme-contrib/pull/1475) **(pm)** direct @mention items get assigned_issue timeout floor (1500s) |
| 91 | +- [gptme-contrib#1482](https://github.com/gptme/gptme-contrib/pull/1482) **(gptodo)** isolate scoped check load errors |
| 92 | +- [gptme-contrib#1483](https://github.com/gptme/gptme-contrib/pull/1483) **(sessions)** grok background-task outputs invisible to signal extraction (8/8 false noops) |
| 93 | +- [gptme-contrib#1488](https://github.com/gptme/gptme-contrib/pull/1488) **(lessons)** exclude newline from companion-link path-component regex |
| 94 | + |
| 95 | +## Performance |
| 96 | + |
| 97 | +- [gptme-contrib#1464](https://github.com/gptme/gptme-contrib/pull/1464) **(check-notifications)** add PR/issue state caching for 60-70% call reduction |
| 98 | + |
| 99 | +## Refactors |
| 100 | + |
| 101 | +- [gptme#3537](https://github.com/gptme/gptme/pull/3537) **(cli)** move Bob-specific status fields out of core; add StatusProvider extension point |
| 102 | +- [gptme#3561](https://github.com/gptme/gptme/pull/3561) **(tools/read)** decouple read tool examples from hashline conventions |
| 103 | +- [gptme#3562](https://github.com/gptme/gptme/pull/3562) **(tools/read)** fully decouple read.py from _hashline_snapshot |
| 104 | +- [gptme#3564](https://github.com/gptme/gptme/pull/3564) **(tests)** move hashline snapshot test out of test_tools_read.py |
| 105 | +- [gptme-contrib#1446](https://github.com/gptme/gptme-contrib/pull/1446) **(structure)** clean up root dir, remove knowledge/ and state/, add root-structure CI check |
| 106 | +- [gptme-contrib#1467](https://github.com/gptme/gptme-contrib/pull/1467) **(precommit)** simplify check_root_structure to use git ls-files + add tests |
| 107 | + |
| 108 | +## Documentation |
| 109 | + |
| 110 | +- [gptme#3554](https://github.com/gptme/gptme/pull/3554) **(design)** complete PTC audit — paper citation + full tools/ coverage |
| 111 | +- [gptme#3563](https://github.com/gptme/gptme/pull/3563) fix providers.rst structure, nest provider/browser pages, add Tool Formats guide |
| 112 | +- [gptme#3572](https://github.com/gptme/gptme/pull/3572) **(models)** cite the grok-4.6 model card |
| 113 | +- [gptme#3582](https://github.com/gptme/gptme/pull/3582) document subscription auth (ChatGPT Plus/Pro, SuperGrok) in README and providers docs |
| 114 | +- [gptme#3588](https://github.com/gptme/gptme/pull/3588) add headless agents section with gptme service init example |
| 115 | +- [gptme-contrib#1477](https://github.com/gptme/gptme-contrib/pull/1477) overhaul root README + add scripts/README index |
| 116 | +- [gptme-contrib#1480](https://github.com/gptme/gptme-contrib/pull/1480) add ai-reviewer.md (what the AI review comment is, maintainer commands) |
| 117 | + |
| 118 | +## Tests |
| 119 | + |
| 120 | +- [gptme#3581](https://github.com/gptme/gptme/pull/3581) **(webui)** add regression test for BYOK 422 invalid-key rejection (#3545) |
| 121 | +- [gptme#3590](https://github.com/gptme/gptme/pull/3590) **(server)** add subprocess integration test for server startup (#3589) |
| 122 | + |
| 123 | +## CI & Infrastructure |
| 124 | + |
| 125 | +- [gptme#3535](https://github.com/gptme/gptme/pull/3535) add a focused Windows path/config smoke lane |
| 126 | +- [gptme#3585](https://github.com/gptme/gptme/pull/3585) add dependency advisory gate (Phase 1, non-blocking) |
| 127 | +- [gptme#3599](https://github.com/gptme/gptme/pull/3599) **(deps)** bump actions/checkout from 4 to 7 |
| 128 | +- [gptme#3600](https://github.com/gptme/gptme/pull/3600) **(deps)** bump astral-sh/setup-uv from 5 to 7 |
| 129 | + |
| 130 | +## Other Changes |
| 131 | + |
| 132 | +- [gptme-contrib#1449](https://github.com/gptme/gptme-contrib/pull/1449) **(root)** consolidate schemas/, tools/, commands/ into docs/, scripts/ |
| 133 | + |
| 134 | +--- |
| 135 | + |
| 136 | +*83 PRs merged across 2 repos. See the full changelogs: [gptme](https://github.com/gptme/gptme/pulls?q=is%3Apr+is%3Amerged) | [gptme-contrib](https://github.com/gptme/gptme-contrib/pulls?q=is%3Apr+is%3Amerged)* |
0 commit comments