Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
212 commits
Select commit Hold shift + click to select a range
2a394e5
fix(docs): standardize recall latency to ~45ms
ajianaz Aug 11, 2026
e381b17
Merge pull request #999 from codecoradev/fix/docs-recall-latency-30ms…
ajianaz Aug 11, 2026
cc8a69b
chore: harden .gitignore + restructure repo for public safety
ajianaz Aug 13, 2026
c80655a
feat: hybrid as default recall strategy + import fixes (#1005, #1014)…
ajianaz Aug 13, 2026
4a56cac
perf: Phase 2 — skip update check in batch mode, pre-truncate embeddi…
ajianaz Aug 13, 2026
20a0455
feat: Phase 3 — lifecycle/deprecated, memory tools guide, source prov…
ajianaz Aug 13, 2026
6403f01
feat: scene-segmented extraction with priority scoring (#1009) (#1018)
ajianaz Aug 13, 2026
af0e500
chore: bump version to 0.14.0 (#1019)
ajianaz Aug 13, 2026
87a0280
fix: crates.io publish race condition + uteke-mcp metadata (#1021)
ajianaz Aug 14, 2026
5e063e2
fix(ci): switch deploy-website from npm to bun (#1022)
ajianaz Aug 14, 2026
4aea7c4
feat(test): adopt cargo-mutants for mutation testing (#1023)
ajianaz Aug 14, 2026
5441eab
fix(chunker): heading duplication + multibyte infinite loop; 40 mutat…
ajianaz Aug 14, 2026
6a1ec8e
chore: bump version to 0.14.1 (#1025)
ajianaz Aug 14, 2026
b98f579
fix(cli): uteke-cli crates.io publish failure + release verify step (…
ajianaz Aug 14, 2026
6e4dac1
chore: bump version to 0.14.2 (#1031)
ajianaz Aug 14, 2026
2253e07
ci(release): reject stale RELEASE_NOTES.md (#1033)
ajianaz Aug 14, 2026
9d3ad3a
fix: HTTP & MCP recall strategy — default hybrid, loud validation (#1…
ajianaz Aug 15, 2026
76d24b5
chore: bump version to 0.14.3 (#1039)
ajianaz Aug 15, 2026
c2d85de
fix(ci): release notes heredoc executed installer on runner — use tem…
ajianaz Aug 15, 2026
fdc0c68
docs: sync stale version refs, roadmap v0.13–v0.14, merge comparison …
ajianaz Aug 17, 2026
3780a3e
docs(agent): Critical Rule #14 — explicit approval before execution (…
ajianaz Aug 17, 2026
f5029a3
test: use ORT_LIB_NAME in find_ort_in_dir exact-match test (#1054) (#…
ajianaz Aug 17, 2026
de17609
chore: switch ID generation new_v4 → now_v7 (#1058) (#1060)
ajianaz Aug 17, 2026
ec23866
fix: soft-forgotten memories leak into list, search, and doctor count…
ajianaz Aug 17, 2026
8451a80
fix: search_content(None) coerced to default namespace — cross-namesp…
ajianaz Aug 17, 2026
5b8ec19
fix: recall cache hit skips salience/recency boosts — cold/warm score…
ajianaz Aug 17, 2026
021f22f
fix: /export drops namespace attribution + deprecated-row delta undoc…
ajianaz Aug 17, 2026
f6337fc
fix(mcp): uteke_dream destructive defaults — dry-run first, scope or …
ajianaz Aug 17, 2026
0a6331d
feat(mcp): enrich tool outputs agents need — stats tiers/namespaces, …
ajianaz Aug 17, 2026
faaf7f3
feat(mcp): uteke_get + uteke_update tools; short-ID resolution for al…
ajianaz Aug 17, 2026
b8c695e
feat: structural export — full-store round-trip (rooms, graph, edges,…
ajianaz Aug 17, 2026
33fad47
feat: supersession workflow — mark stale decisions superseded, flagge…
ajianaz Aug 17, 2026
db7299a
ci: add source-branch-check — PRs into main must come from develop (#…
ajianaz Aug 19, 2026
5983654
chore: bump version to 0.15.0 (#1073)
ajianaz Aug 19, 2026
072e188
ci: source-branch-check allows chore/release-* release branches (#1075)
ajianaz Aug 19, 2026
2102724
ci: bump actions/download-artifact v4 -> v8 (Node 24) (#1080)
ajianaz Aug 19, 2026
2076bc0
fix(core): structural import silently dropped room_documents + harden…
ajianaz Aug 19, 2026
38a5db8
fix(ci): skip CLA check for bots (dependabot, renovate, github-action…
ajianaz Aug 20, 2026
0dd4592
feat(core): add author_type (human|agent) to memory records (#1084)
ajianaz Aug 24, 2026
0ef1854
fix(server): wire 'at' time-travel param into /room/recall (#1085)
ajianaz Aug 24, 2026
d6ff6bb
docs(server): document deprecation time-travel limitation (#1086) (#1…
ajianaz Aug 24, 2026
bca7666
feat(core): room semantic segmentation (LLM-free, #1088) (#1090)
ajianaz Aug 25, 2026
1a61919
feat(core): expose semantic segments in room_summary (#1088) (#1091)
ajianaz Aug 25, 2026
5052c32
feat(core): segment-level consolidation planner, measure-only (#1088)…
ajianaz Aug 25, 2026
5ab4633
feat(core): provenance trust policy for consolidation (#1089) (#1093)
ajianaz Aug 25, 2026
f6bdb84
feat(core): LLM consolidation executor reusing extraction setup (#108…
ajianaz Aug 25, 2026
0c3f89e
feat: wire consolidation pipeline into core, CLI, and HTTP (#1088) (#…
ajianaz Aug 25, 2026
c1bba22
chore(docs): regenerate api-reference via docgen (#1095 follow-up) (#…
ajianaz Aug 25, 2026
9bc82c4
feat(core): vecq pure-Rust vector backend behind feature flag (#1099)
ajianaz Aug 26, 2026
17e2f91
fix(core): track deprecated_at for correct time-travel recall (#1086)…
ajianaz Aug 26, 2026
13b1d6d
chore: remove embed_cache.db artifact and ignore it (#1101)
ajianaz Aug 26, 2026
e7c127e
feat: per-pair dedup control via POST /consolidate/pair (#1076) (#1102)
ajianaz Aug 26, 2026
f07dfef
fix(ci): keep v prefix in release notes download table + pinned insta…
ajianaz Aug 26, 2026
19a1fe1
feat(server): add --version/-V flag to uteke-serve (#1044) (#1104)
ajianaz Aug 26, 2026
72fd7d9
fix(cli): honor UTEKE_HOME as store path override (#1105) (#1107)
ajianaz Aug 26, 2026
1a081e2
fix: echo author_type in remember responses + CLI --author-type flag …
ajianaz Aug 26, 2026
3f0cf32
fix(core): repair() no longer evicts document chunk vectors from inde…
ajianaz Aug 26, 2026
27a2b4f
fix(build): vecq binaries now buildable via forwarded backend feature…
ajianaz Aug 26, 2026
b4f0b8a
fix(core): backend-aware index filename, doctor label, forget --confi…
ajianaz Aug 26, 2026
668ed6c
fix(core): verify/doctor count doc chunks on DB side, no false MISMAT…
ajianaz Aug 26, 2026
9c1979e
fix(cli): repair report compares against memories + chunks (#1117)
ajianaz Aug 26, 2026
46e1c47
test(longmemeval): fast-eval foundation — datasets + Modal harness + …
ajianaz Aug 27, 2026
e65f36a
test(longmemeval): temporal date-window boost (#1119) (#1126)
ajianaz Aug 27, 2026
ac951f7
test(longmemeval): MMR diversity rerank flag + replay recording (#112…
ajianaz Aug 27, 2026
4e32746
fix(longmemeval): dataset-tagged volume paths + qid-set cache validat…
ajianaz Aug 27, 2026
9cb7cbb
fix(core): make sha2 non-optional — no-default-features profile compi…
ajianaz Aug 28, 2026
e27dbe5
feat(core): Fusion as default recall strategy + benchmark tooling (v0…
ajianaz Aug 28, 2026
c6cf669
feat(bench): UTEKE_GIT_REF — build validation binary from exact SHA i…
ajianaz Aug 29, 2026
bfbc296
fix(bench): install build-essential for git-ref image build (linker c…
ajianaz Aug 29, 2026
14b37ab
docs(bench): pure-default 500Q validation — fusion 0.946 R@5 (+9.2 vs…
ajianaz Aug 29, 2026
8a6d48f
docs: fusion weights = internal hasil tuning, bukan bagian kontrak pu…
ajianaz Aug 29, 2026
8dc6c4a
docs(bench): LongMemEval-S 500Q results page — dual-metric + comparis…
ajianaz Aug 29, 2026
bfed150
chore(release): CHANGELOG 0.16.0 — full-release validation numbers + …
ajianaz Aug 29, 2026
468f842
fix(core): repair --reembed can now repair NULL-embedding rows (#1146…
ajianaz Aug 29, 2026
7facdeb
fix(ci): CLA check skips bot PRs with exact allowlist (#1132) (#1148)
ajianaz Aug 29, 2026
18ff623
fix(cli): repair --reembed report reflects final index state (#1149) …
ajianaz Aug 29, 2026
da46d40
chore(ci): bump actions/github-script from v7 to v9 (#1151)
ajianaz Aug 29, 2026
febee27
test(cli): resolve_namespace precedence — flag > env > config > defau…
ajianaz Aug 29, 2026
512f379
test(cli,core): env parsing guards + validate_input_with_limits bound…
ajianaz Aug 29, 2026
d03375c
test(core): ensure_embedder branch coverage — unknown/custom/openai-m…
ajianaz Aug 29, 2026
978003f
test(cli): cover TOML helpers — migrate_content, global_config_path, …
ajianaz Aug 29, 2026
a0a400d
docs: refresh documentation for 0.16.0 — fusion default, updated benc…
ajianaz Aug 29, 2026
92b485b
chore: sync main back into develop after #1158 docs carry (#1159)
ajianaz Aug 29, 2026
a83987d
docs(contributing): require CLA + state contributions are unpaid (#1162)
ajianaz Aug 30, 2026
cf49be8
deps(core): bump vecq-core 0.1.1 -> 0.3.0, adopt 4-bit + residual pro…
ajianaz Aug 31, 2026
10ddcc4
fix(core): feature-aware embedder default in open() + open_with_backe…
ajianaz Aug 31, 2026
75b72ff
feat(core): runtime-selectable vector engine (usearch + vecq in one b…
ajianaz Aug 31, 2026
c0b92cb
feat(build): dual-engine default — official binaries ship usearch + v…
ajianaz Aug 31, 2026
652fca6
docs(bench): independent reproduction results + surfaced headline num…
ajianaz Sep 1, 2026
4dd7c54
chore(deps): bump flate2 from 1.1.9 to 1.1.10 (#1175)
dependabot[bot] Sep 3, 2026
39f877a
chore(deps): bump which from 8.0.5 to 8.0.6 (#1176)
dependabot[bot] Sep 3, 2026
2cc0474
chore(deps): bump usearch from 2.26.0 to 2.26.1 (#1177)
dependabot[bot] Sep 3, 2026
51707f3
chore(deps): bump uuid from 1.24.0 to 1.26.0 (#1178)
dependabot[bot] Sep 3, 2026
bd2288c
fix(room): honest room_delete reporting across CLI/HTTP/MCP — count u…
ajianaz Sep 3, 2026
cbccebb
fix(server): resolve memory IDs to graph nodes in /graph/edge endpoin…
ajianaz Sep 5, 2026
0f75a96
feat(api): namespace management — move, rename/merge, delete with str…
ajianaz Sep 5, 2026
16f1186
feat(core): provenance data model — source hash, event actor/evidence…
ajianaz Sep 5, 2026
841e990
feat: contradiction resolution ledger + undo across CLI/HTTP/MCP (#11…
ajianaz Sep 5, 2026
d0243a7
feat: explain recall — ranking signals on CLI, HTTP, and MCP (#1160) …
ajianaz Sep 6, 2026
8a28aef
fix: graph excludes stale memory nodes + readable node labels (#1189 …
ajianaz Sep 6, 2026
9bd004d
feat: /list pagination metadata envelope (#1188) (#1191)
ajianaz Sep 6, 2026
29d50d7
feat: contradiction benchmark segment + uteke supersede CLI (#1172 F3…
ajianaz Sep 6, 2026
b15c2c4
chore: release 0.17.0 (#1194)
ajianaz Sep 6, 2026
591f64d
chore: post-release sync main→develop + AGENTS.md (0.17.0) (#1198)
ajianaz Sep 6, 2026
100c3e2
docs: AGENTS.md points to codecora-workflow-standard room as workflow…
ajianaz Sep 6, 2026
c399678
feat(api): room rename, room update, memory room-move + CLI memory up…
ajianaz Sep 7, 2026
2da9693
docs(benchmarks): surface benchmark proof in README, fix stale versio…
ajianaz Sep 9, 2026
5ad4ce7
docs(benchmarks): restructure into internal/longmemeval/locomo, commi…
ajianaz Sep 9, 2026
5300c88
fix(core): verify dedup candidates are live before skipping insert (#…
ajianaz Sep 9, 2026
759dd13
docs(readme): benchmark-first restructure + self-service reproduction…
ajianaz Sep 9, 2026
fa38c48
bench(locomo): full 1536-QA results on v0.17.0 — fusion wins strict f…
ajianaz Sep 9, 2026
cfe217e
bench(longmemeval): v0.17.0 re-validation complete — headline numbers…
ajianaz Sep 9, 2026
05457d1
docs(readme): align headline numbers with owner decisions — 45ms late…
ajianaz Sep 9, 2026
d2aa018
docs(readme): fix badge anchor + humanizer/copywriting pass (zero em …
ajianaz Sep 9, 2026
2fbbd7d
docs(readme): embed v0.17 revalidation chart in the benchmark section…
ajianaz Sep 9, 2026
d1f2144
docs: sync Indonesian README + docs with v0.17.0 benchmark decisions …
ajianaz Sep 9, 2026
8657dbb
docs: document namespace management (#1181) and sync MCP tool table w…
ajianaz Sep 10, 2026
42d1e66
fix(benchmarks): correct LoCoMo category label mapping (official 1=si…
ajianaz Sep 10, 2026
b4d3991
fix(install): copy bundled ORT libs on binary install (#1221)
KazamiHazaki Sep 11, 2026
3fe6a6b
fix(ci): make cla-check work for fork PRs (#1224)
ajianaz Sep 11, 2026
7924453
chore(deps): bump usearch from 2.26.1 to 2.26.2 (#1204)
dependabot[bot] Sep 11, 2026
4e17273
chore(deps): bump tokenizers from 0.23.1 to 0.23.2 (#1206)
dependabot[bot] Sep 11, 2026
2804b55
chore(deps): bump dirs from 6.0.0 to 7.0.0 (#1207)
dependabot[bot] Sep 11, 2026
fd83959
fix(ci): skip branch naming and PR description checks for bot PRs (#1…
ajianaz Sep 11, 2026
b9bb420
chore(deps): bump toml from 1.1.4+spec-1.1.0 to 1.1.5+spec-1.1.0 (#1205)
dependabot[bot] Sep 11, 2026
f4bdae7
fix(cli): default recall min_score 0.3 -> 0.0 (#1223) (#1228)
ajianaz Sep 11, 2026
3b93b34
benchmarks: preserve AMB (agent-memory-benchmark) run kit (#1226) (#1…
ajianaz Sep 11, 2026
a6f1e5e
chore: revert "benchmarks: preserve AMB run kit (#1230)" (#1235)
ajianaz Sep 11, 2026
6ffd8db
feat(ingest): --timestamp date anchors for remember and text import (…
ajianaz Sep 12, 2026
c7329ab
test(recall): payload conformance — full payload contract, no stubs (…
ajianaz Sep 14, 2026
875a68a
chore: bump version 0.17.0 -> 0.18.0 (#1241)
ajianaz Sep 14, 2026
14da6d0
chore(release): v0.18.0 - changelog, docs, version refs (#1242)
ajianaz Sep 14, 2026
be8e99d
docs: sync remaining version refs to v0.18.0 (#1247)
ajianaz Sep 14, 2026
e5393e0
chore(deps): bump rustls to 0.23.45 for RUSTSEC-2026-0285 (#1250)
ajianaz Sep 15, 2026
d36e0c8
docs(changelog): add Contributors section to 0.18.0 (KazamiHazaki #12…
ajianaz Sep 15, 2026
0587024
ci(release): auto-append external contributor credits to release note…
ajianaz Sep 15, 2026
f914300
fix(export): keep junction dumps FK-consistent with soft-deleted memo…
ajianaz Sep 15, 2026
477ac67
fix(server): reject unknown keys in remember payloads with a 400 (#1254)
ajianaz Sep 15, 2026
2a2160b
fix(cli): upgrade companion binaries and ORT libs, normalize version …
ajianaz Sep 15, 2026
ae144a8
feat(cli): one-line footer after successful uteke doctor (#1256)
ajianaz Sep 15, 2026
564896d
fix(server): minimal health payload for tokenless requests (#1257)
ajianaz Sep 15, 2026
12cac65
chore(release): v0.18.1 - version bump, changelog, docs sync (#1259)
ajianaz Sep 15, 2026
8e57e1c
chore(deps): bump toml from 1.1.5+spec-1.1.0 to 1.1.6+spec-1.1.0 (#1263)
dependabot[bot] Sep 16, 2026
dc9c8d6
chore(deps): bump uuid from 1.26.0 to 1.26.1 (#1264)
dependabot[bot] Sep 16, 2026
c0573a4
docs: replace self-hosted star chart with star-history.com embed (#1265)
ajianaz Sep 16, 2026
e9f9fa5
fix: doc list honors --namespace on CLI, HTTP, and MCP (#1268) (#1269)
ajianaz Sep 17, 2026
8ccc600
fix: unified recall scopes docs to namespace, reports honest scores (…
ajianaz Sep 17, 2026
82caf9b
feat: expose verify/repair over HTTP and MCP (#1266) (#1272)
ajianaz Sep 17, 2026
e35ad95
feat: ship SKILL.md in version lockstep with the CLI (#1267) (#1274)
ajianaz Sep 17, 2026
9bdccbd
docs: point AGENTS.md at the written CORE/LAB contract (uteke doc kon…
ajianaz Sep 18, 2026
34fbc85
feat: tier-tag the API registry and generate the CORE contract list (…
ajianaz Sep 18, 2026
d09b2f6
fix: report embedding write failures honestly across remember surface…
ajianaz Sep 18, 2026
e2035d1
chore(release): v0.18.2 — backport unified doc recall fix (#1270) (#1…
ajianaz Sep 18, 2026
320ce62
chore(release): complete v0.18.2 metadata lost in #1278 squash (#1279)
ajianaz Sep 18, 2026
4cc1c13
feat(core): audit-grade timeline — history survives forget, deprecate…
ajianaz Sep 18, 2026
be905f1
chore(docs): evergreen README hero banner + install URL consistency (…
ajianaz Sep 23, 2026
11730c2
feat(recall): budgeted context pack — --pack on CLI, HTTP, and MCP (#…
ajianaz Sep 23, 2026
d9b29ac
chore(deps): bump clap_complete from 4.6.9 to 4.6.11 (#1285)
dependabot[bot] Sep 24, 2026
3298980
chore(deps): bump vecq-core from 0.3.0 to 0.3.1 (#1286)
dependabot[bot] Sep 24, 2026
7632a85
chore(deps): bump clap from 4.6.6 to 4.6.7 (#1287)
dependabot[bot] Sep 24, 2026
8e138ad
fix(api): honor namespace filter on GET /room/memories (#1288) (#1290)
ajianaz Sep 28, 2026
fbfed5f
feat(api): add GET /routes machine-readable endpoint registry (#1289)…
ajianaz Sep 28, 2026
a338176
chore: release v0.19.0 — version bump + CHANGELOG (#1292)
ajianaz Sep 28, 2026
29c9222
docs: remove non-existent Homebrew tap from install options (#1294)
ajianaz Sep 29, 2026
bf4b153
docs(benchmark): commit raw v0.19.0 500Q results (default-500q-v0.19.…
ajianaz Sep 29, 2026
5efe695
docs(benchmark): re-anchor headline to v0.19.0 raw (98.2% any@5) + th…
ajianaz Sep 29, 2026
4a7606c
docs(benchmark): fix v0.19.0 chart bottom spacing (tick gap + divider…
ajianaz Sep 29, 2026
d39a7b3
docs: sync mcp.md + architecture.md with 0.19.0 reality (#1298)
ajianaz Sep 29, 2026
aeee520
feat(integrations): committed Hermes plugin package + drift guard (#1…
ajianaz Oct 1, 2026
6307727
fix(server): honor explicit memory type on plain /remember (#1303)
ajianaz Oct 3, 2026
c545566
chore(deps): bump thiserror from 2.0.20 to 2.0.21 (#1299)
dependabot[bot] Oct 3, 2026
c862793
docs(branding): replace Zero cloud tagline with local-first wording (…
ajianaz Oct 3, 2026
2ad9e5c
fix(upgrade): make 302-redirect primary path actually work for latest…
ajianaz Oct 5, 2026
9c06b22
fix(upgrade): honor GITHUB_TOKEN in the API fallback (#1309)
ajianaz Oct 5, 2026
d9e3164
fix(upgrade): harden temp dir, download timeouts, checksum match, and…
ajianaz Oct 5, 2026
8cb2d47
ci(release): auto-update homebrew-tap formula on new release (#1311)
ajianaz Oct 5, 2026
fd6c0c1
docs: add Homebrew install option (#1312)
ajianaz Oct 5, 2026
f416076
chore(release): v0.19.1 - version bump, changelog, docs sync (#1313)
ajianaz Oct 5, 2026
31f6d53
fix: keep index on lock timeout, release server slot on panic, send C…
ajianaz Oct 7, 2026
8d225ed
security: untrusted project config, CORS off by default, list limit c…
ajianaz Oct 7, 2026
d47bdb9
docs(skill): refresh uteke-memory skill and add command coverage test…
ajianaz Oct 7, 2026
e49ce26
chore(deps): bump usearch from 2.26.2 to 2.26.3 (#1317)
dependabot[bot] Oct 7, 2026
1c1cb5a
chore(deps): bump uuid from 1.26.1 to 1.27.0 (#1316)
dependabot[bot] Oct 7, 2026
9d6d578
fix(upgrade): retry ETXTBSY when verifying the freshly copied binary …
ajianaz Oct 7, 2026
a1b6e07
fix(cli): checksum --json exit code, merge lifecycle/aging/top-level …
ajianaz Oct 7, 2026
12fe033
fix(core): FTS5 columns, unix index lock, pinned bulk delete, doc_sea…
ajianaz Oct 7, 2026
81189ef
refactor(core): share one column list between memory SELECTs and row_…
ajianaz Oct 7, 2026
6e00da0
refactor(core): index_sync module owns insert/remove/persist policy (…
ajianaz Oct 7, 2026
6aa7b37
refactor(core): route remaining index writes through index_sync (#1348)
ajianaz Oct 7, 2026
6d0b778
refactor(core): document upsert/update as embed-then-commit (#1350)
ajianaz Oct 7, 2026
b92f139
fix(core): correct documents_fts update/delete triggers for external-…
ajianaz Oct 7, 2026
9af3f07
refactor: shared config layer resolution in uteke-core (#1354)
ajianaz Oct 7, 2026
6748e47
docs(skill): add namespace/room/tag conventions to uteke-memory skill…
ajianaz Oct 7, 2026
c06e549
fix(mcp): add full_ids option so UUIDv7 id prefixes can be disambigua…
ajianaz Oct 7, 2026
efafe94
fix(server,mcp): harden /import limit, /mcp body+CORS, and resolve_id…
ajianaz Oct 7, 2026
8c25563
security(server): validate Host header to block DNS rebinding (#1360)
ajianaz Oct 7, 2026
05ce8b2
perf(core): release the embedder lock between document chunks (#1323)…
ajianaz Oct 7, 2026
bab1767
fix(core): verify index/.keys sidecar consistency on load (#1325) (#1…
ajianaz Oct 7, 2026
07f5328
perf(core): batch vector-index saves instead of rewriting per write (…
ajianaz Oct 7, 2026
c0b713d
perf(core): compact the vecq index when dead rows pass 25% (#1364)
ajianaz Oct 8, 2026
b1056e4
fix(graph): serve memory_edges in GET /graph; fix FK violations in MC…
ajianaz Oct 8, 2026
a1d5dc2
chore(bench): fix fast-eval id path; make Modal model dir and ORT rel…
ajianaz Oct 8, 2026
77f4bf9
fix(core): edges to deprecated memories no longer count in graph rera…
ajianaz Oct 8, 2026
4bd5592
perf(core): remember() no longer scans the namespace or holds the ind…
ajianaz Oct 8, 2026
686b73c
fix(core): documents has_children, legacy-path move, tag rename dupes…
ajianaz Oct 8, 2026
52c685d
fix(cli): recall flags via server, list filters, doc tree/export, upg…
ajianaz Oct 8, 2026
75a5324
fix(core): re-parenting doc upsert carries the whole subtree (#1378)
ajianaz Oct 8, 2026
939ab56
chore(release): v0.20.0 - version bump, changelog, docs sync (#1379)
ajianaz Oct 8, 2026
de305c8
ci(release): open the homebrew-tap PR in the tap's required format an…
ajianaz Oct 8, 2026
d2651e4
ci: pass the PR base branch to the Cora review action
ajianaz Oct 8, 2026
0bf6c8d
chore: probe PR into main (do not merge)
ajianaz Oct 8, 2026
20a79e3
chore: merge main (develop side kept), as in the release procedure
ajianaz Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/cora-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,8 @@ jobs:
cora-api-key: ${{ secrets.CORA_API_KEY }}
cora-base-url: ${{ secrets.CORA_BASE_URL }}
cora-model: ${{ secrets.CORA_MODEL }}
# The action defaults to origin/develop. For a PR into main that makes
# `git diff origin/develop...HEAD` empty (release PRs carry develop's
# tree), so Cora reported "empty result" and never reviewed the diff.
# Diff against the PR's real base branch.
base-branch: origin/${{ github.base_ref }}
61 changes: 58 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -508,12 +508,55 @@ jobs:
--out tap/Formula/uteke.rb
cat tap/Formula/uteke.rb

- name: Verify formula checksums against the release
env:
TAG: ${{ github.ref_name }}
run: |
# Every url/sha256 pair in the generated formula must point at THIS
# release and carry the SHA256 published in checksums-sha256.txt, so the
# PR description's "verified" claim is checked, not asserted.
python3 - <<'PY'
import os, re, sys

tag = os.environ["TAG"]
formula = open("tap/Formula/uteke.rb").read()
sums = {}
for line in open("checksums-sha256.txt"):
parts = line.split()
if len(parts) == 2:
sums[parts[1].lstrip("*")] = parts[0]

pairs = re.findall(r'url "([^"]+)"\s*\n\s*sha256 "([0-9a-f]{64})"', formula)
if not pairs:
sys.exit("::error::no url/sha256 pairs found in the generated formula")
bad = 0
for url, sha in pairs:
name = url.rsplit("/", 1)[-1]
if f"/download/{tag}/" not in url:
print(f"::error::{name}: URL does not point at release {tag}")
bad += 1
elif name not in sums:
print(f"::error::{name} is not listed in checksums-sha256.txt")
bad += 1
elif sums[name] != sha:
print(f"::error::{name}: formula has {sha}, release publishes {sums[name]}")
bad += 1
else:
print(f"ok {name}")
sys.exit(1 if bad else 0)
PY

- name: Create update branch and pull request
working-directory: tap
env:
VERSION: ${{ github.ref_name }}
REPO: ${{ github.repository }}
GH_TOKEN: ${{ secrets.TAP_TOKEN }}
run: |
# The tap enforces Conventional Commits on the PR title, a branch prefix
# and "## What / ## Why / ## Testing" in the body (pr-checks.yml), so the
# PR is generated to pass them without manual edits.
TITLE="chore: update formula for uteke ${VERSION#v}"
git config user.name "uteke-release-bot"
git config user.email "bot@codecora.dev"
BRANCH="chore/formula-${VERSION}"
Expand All @@ -523,14 +566,26 @@ jobs:
echo "Formula unchanged — nothing to update."
exit 0
fi
git commit --no-verify -m "uteke ${VERSION}: update formula (automated from release ${VERSION})"
git commit --no-verify -m "$TITLE"
git push origin "$BRANCH"
cat > "$RUNNER_TEMP/pr-body.md" <<EOF
## What
Update Formula/uteke.rb for uteke ${VERSION}: the release URLs and SHA256 values for every supported platform (macOS arm64, Linux arm64, Linux x86_64) and the version in the unsupported-platform messages.

## Why
Automated formula update from the uteke release workflow: https://github.com/${REPO}/releases/tag/${VERSION}

## Testing
- Every SHA256 in this formula was re-verified against checksums-sha256.txt of the published ${VERSION} release before this PR was opened (the job fails otherwise).
- CI on this PR: brew audit (macOS), brew install + test on Linux x86_64 and macOS ARM.
- Merge manually once the checks pass (no auto-merge). Cora may return an empty result on formula-only diffs; accept it only after confirming the checksum verification above.
EOF
gh pr create \
--repo codecoradev/homebrew-tap \
--base main \
--head "$BRANCH" \
--title "uteke ${VERSION}: update formula" \
--body "Automated formula update from uteke release ${VERSION}.\n\nChecksums verified against the published checksums-sha256.txt. CI (brew audit + brew test on macOS ARM and Linux) must pass before merge."
--title "$TITLE" \
--body-file "$RUNNER_TEMP/pr-body.md"
echo "PR created for ${VERSION}"


Expand Down
Loading