Garry Tan and Time Attakc
48618bd4bf
feat(ci): publish GitHub releases so binary self-update can work ( #3521 ) ( #3573 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 19:55:28 +08:00
Garry Tan
dcaea7fdbb
fix(wave): revert extractor watermark to merge-day midnight — a future watermark masks concurrent edits (D4)
...
CI caught what the composite review's watermark 'fix' actually did: the
stamp path clamps links_extracted_at up to the watermark
(GREATEST(updated_at, versionTs), extract.ts:1835), so a future watermark
stamps every page at 2026-08-02 and masks any concurrent edit until then —
the exact race D4 guards — and makes the doctor lag check warn on fresh
brains. The limitation the future date tried to cover (stamps written by
pre-wave code after the watermark) is inherent: no fixed watermark covers
code that keeps running past it. Documented instead.
2026-08-01 10:06:17 +08:00
Garry Tan
c6bfab582e
v0.42.70.0 fix: community fix wave two — 18 contributed fixes for dead flags, dry-run safety, link resolution, and Windows support
v0.42.70.0
2026-08-01 10:06:17 +08:00
Garry Tan
c5ac3efe9f
fix(wave): composite-review findings — mask wikilink interiors from the bare-path scan; future-safe extractor watermark
...
Two cross-PR findings from the wave-i hostile review (Codex xhigh):
1. The #3560-ungated bare-path pass scanned inside [[...]] spans, so a
dir-qualified wikilink's lowercase prefix (its parent page) became a
spurious 'markdown' edge whenever the parent existed. Wikilink spans
are now masked with equal-length blanks before pass 2; discriminating
test added (fails without the mask).
2. LINK_EXTRACTOR_VERSION_TS was midnight today with a strict-< staleness
predicate, so same-day stamps from pre-wave code read as fresh and
never re-extracted. Bumped to 2026-08-02T00:00:00Z.
Plus two comment corrections from both reviewers: upgrade.ts's X1 hook
rationale (stale after #3085 ) and PGLiteEngine.transaction's tx-engine
db-proxy hazard for #3613 's searchVector wrapper.
2026-08-01 10:06:17 +08:00
Garry Tan
0a6b697070
fixup( #3161 ): pin #1964 assertions to the wikilink-resolved lane
...
In-wave interaction with #3560 : extractPageLinks now also emits raw-literal and bare-path candidates that downstream existence checks drop; the tests' whole-list toEqual predates that. Filter to linkSource='wikilink-resolved' — the PR's resolution + no-cross-dir-leak claims are still fully pinned.
2026-08-01 10:06:17 +08:00
Garry Tan
873587f831
fixup( #3453 ): regenerate skills.lock.json against current master skills/
...
The PR's committed manifest predates master's latest SKILL.md edits; regenerated with the PR's own generator per the check's instructions.
2026-08-01 10:06:17 +08:00
Garry Tan
78391e8b64
fix(extract): resolve cross-directory wikilinks via sync-consistent slugification ( #3161 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Time Attakc
f08a51d9de
fix(extract): stop silently dropping links from non-whitelisted directories ( #2576 ) ( #3560 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Time Attakc
7cbb99ffef
feat(doctor): silent-failure check batch — content-hash duplicates, undeclared DB-only pages, heartbeat staleness, db_only collector collision ( #2250 #2784 #2787 #2788 ) ( #3457 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Time Attakc
aa5b9e6e2d
feat(doctor): tamper-evident skills/ manifest — generator, doctor drift check, CI freshness guard ( #159 ) ( #3453 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 10:06:17 +08:00
Garry Tan
8e3699156f
fix(sources): honor unfederate for unqualified reads ( #2928 ) ( #3533 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan
cc1783c0e4
fix(cli): make --brain actually route to the named brain ( #3576 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Diego
e77a15f0d8
fix(windows): use native path boundaries and assertions ( #3578 )
...
Co-Authored-By: Diego <diegodearagao@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and YMYD
522cfb032a
fix(chunker): measured hard-split budgets + token-aware capByChars — the follow-up invited in #3477 's merge review ( #3564 )
...
Co-Authored-By: YMYD <paul@ymyd.co.kr >
2026-08-01 10:06:17 +08:00
Garry Tan and dialthewolff
273bd0e2be
fix: scope residual federated reads ( #3550 )
...
Co-Authored-By: dialthewolff <jordan@jcwolff.com >
2026-08-01 10:06:17 +08:00
Garry Tan
7522b90db9
fix(search): implement documented relative since/until durations ( #3442 ) ( #3539 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Time Attakc
42f810c406
fix(search): raise hnsw.ef_search to match the vector candidate request ( #3613 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 10:06:17 +08:00
Garry Tan
1ca1a14f24
fix(apply-migrations): stop reporting 'All migrations up to date' while schema is behind ( #3085 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Diego
64c191b1d7
fix(build): force LF for Markdown too (frontmatter parsers anchor on LF) ( #3517 )
...
Co-Authored-By: Diego <diegodearagao@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Diego
d49ea83db4
fix(minions): settle the spawn loop when a child never launches ( #3536 )
...
Co-Authored-By: Diego <diegodearagao@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan
d71d50503d
fix(serve,import): stop the SIGINT orphan; quote imported frontmatter ( #3618 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Diego
a228776b8f
docs(security): tighten responsible disclosure language ( #3619 )
...
Co-Authored-By: Diego <diegodearagao@gmail.com >
2026-08-01 10:06:17 +08:00
Garry Tan and Mammad M.
c0b28f104d
fix(sync): prevent dry-run pull and out-of-strategy page deletion ( #3624 )
...
Co-Authored-By: Mammad M. <mammad@digit.az >
2026-08-01 10:06:17 +08:00
Garry Tan and cvillarroel2
61ef727710
fix(contextual): route synopsis through configured models ( #3678 )
...
Co-Authored-By: cvillarroel2 <20239888+cvillarroel2@users.noreply.github.com >
2026-08-01 10:06:17 +08:00
Garry Tan
532e591655
fix(test): recipe-ollama-dims pins a truncated width — native-width requests now omit the param ( #3699 )
...
Master's #1072 test asserted bare qwen3-embedding@1024 threads dimensions:1024;
wave PR #3699 suppresses the param when the request equals the native width
(1024 for the bare id), so the same input now correctly returns undefined —
pinned by dims-qwen3-native.test.ts. Moved this test to 512 to keep its actual
intent (bare id recognized as Matryoshka-capable) without contradicting the
suppression. Third composition defect of the wave; caught by CI shard 8.
2026-08-01 07:40:48 +08:00
Garry Tan
3acd511b80
v0.42.69.0 fix: community fix wave — 22 contributed fixes for silent-failure paths, local-model support, and multi-source routing
v0.42.69.0
2026-08-01 07:40:48 +08:00
Garry Tan
25e4c0c3b1
fix(skills,docs): unify-types playbooks must pass apply:true after the #3574 default flip
...
#3574 flipped the unify-types worker default to dry-run (jobs.ts:2221,
apply: data.apply ?? false) and updated the architecture docs, but three
agent-facing surfaces still presented the bare submit as the Apply step:
skills/schema-unify/SKILL.md 'Phase 3: Apply', skills/conventions/
schema-evolution.md, and README.md. Because #3545 also edited SKILL.md in
this wave, each PR looked self-consistent in isolation — only the composed
branch shipped a playbook whose apply step silently retypes nothing and
never flips the active pack. Skills distribute downstream via the skillpack,
so this would have propagated. Found by an independent cross-PR review pass.
2026-08-01 07:40:48 +08:00
Garry Tan
ba27a186ec
fix(budget): reconcile #3691 and #3541 — free local providers are priceable at $0
...
#3691 's regression test used llama-server as an 'unknown provider' example.
#3541 (same wave) prices ollama/llama-server at $0 via FREE_LOCAL_CHAT_PROVIDERS,
so that example is now priceable and the assertion inverted. Swapped in groq —
the paid-but-unpriced case #3691 's own description cites — and added the
positive assertion that free local providers keep their cap enforced.
2026-08-01 07:40:48 +08:00
Garry Tan and Christoph
4bb313cd80
feat(by-mention): Unicode-aware word tokenizer — Vietnamese/diacritic name extraction ( #3563 )
...
Co-Authored-By: Christoph <astaran@herr-der-ringe-film.de >
2026-08-01 07:40:48 +08:00
Garry Tan and 老赵
f39b059ad8
test(cli): cover import side-effect guard ( #3581 )
...
Co-Authored-By: 老赵 <273731059@qq.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Kyzcreig
42c2d56df3
fix(import): checkpoint on a time interval and before preserve, not only every 100 files ( #3585 )
...
Co-Authored-By: Kyzcreig <9063726+Kyzcreig@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Vyacheslav Zakharov
e3806cf46f
fix(test): kill timeout-resistant unit shards ( #3631 )
...
Co-Authored-By: Vyacheslav Zakharov <vyacheslav.zakharov@avers.kz >
2026-08-01 07:40:48 +08:00
Garry Tan and Alexey
a82a83dbc3
fix: health metric that cannot converge, and facts lost to a row_num collision ( #3634 )
...
Co-Authored-By: Alexey (CTO) <cto@phrase.local >
2026-08-01 07:40:48 +08:00
Garry Tan and Ben Young
03de3246f3
fix(budget): price free local chat providers at $0, matching embed and rerank ( #3541 )
...
Co-Authored-By: Ben Young <Grimnoth@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Austin Wilhite
37ad1d2104
fix(cycle): stop extract_atoms silently skipping all work on unpriced models ( #3691 )
...
Co-Authored-By: Austin Wilhite <austinw80@gmail.com >
2026-08-01 07:40:48 +08:00
Garry Tan and zenspam
aeb75dc839
fix(dims): skip dimensions param when it equals qwen3-embedding native width ( #3699 )
...
Co-Authored-By: zenspam <zenspam@gmail.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
298b6b01b8
fix(docs): remove references to the nonexistent gbrain install command ( #3502 ) ( #3545 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan
d6f929bfbd
fix(embed): stop one bad chunk darkening a page, and exit non-zero on failures ( #3037 ) ( #3532 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Ryan Ayers
9c1a4b8fce
fix(cycle): surface stamp-write failure on CycleReport and degrade status ( #3504 ) ( #3589 )
...
Co-Authored-By: Ryan Ayers <rayers@dividia.net >
2026-08-01 07:40:48 +08:00
Garry Tan
3523d8fd7e
fix(jobs): unify-types worker defaults to dry-run per its handler contract ( #1575 ) ( #3574 )
...
Co-Authored-By: Garry Tan <garrytan@gmail.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
a3000d4630
fix(skillpack): resolve gbrain root from module path when cwd walk fails ( #3144 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Brett
64ad743d98
fix(models): hint the /v1 base-URL suffix when a doctor chat probe 401s on an openai-compatible proxy ( #3553 )
...
Co-Authored-By: Brett <brettdavies@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
9ada48e600
fix(doctor): bound embedding provider health probe ( #3364 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
aa05255887
fix(doctor): stop reporting Windows-drive image paths as missing under WSL ( #1835 ) ( #3523 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
241603aab8
fix(dream): honor a configured 0 in synthesize + auto_think config resolution (stop coercing to the default) ( #3552 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
69be8bb707
fix(minions): reconnect the stall timer, stop failJob masking job errors, unify retry matchers ( #1720 ) ( #3555 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
1116a95926
fix(entities): resolveEntitySlug fallback keeps the path separator ( #3447 ) ( #3567 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
c8ea38421a
fix(cycle): log swallowed lock.release() failures ( #1470 ) ( #3572 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
163a83baa3
fix(operations): sync_brain threads ctx.sourceId to performSync ( #2830 ) ( #3568 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00
Garry Tan and Time Attakc
f7295e3308
fix(cli): route init --help to its own usage text ( #3652 )
...
Co-Authored-By: Time Attakc <89218912+time-attack@users.noreply.github.com >
2026-08-01 07:40:48 +08:00