Skip to content

fix(recall): discover live memd identity in the rankings producer (#175) - #224

Merged
PeterGuy326 merged 6 commits into
bytefolk:mainfrom
sun-970:fix/175-discover-live-config-20260920
Sep 29, 2026
Merged

PeterGuy326 merged 6 commits into
bytefolk:mainfrom
sun-970:fix/175-discover-live-config-20260920

Conversation

@sun-970

@sun-970 sun-970 commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Tracking record

Refs #175. live_producer.py already landed via #196; this PR closes remaining measurable gaps that do not require a populated embedding deployment.

Summary

  • python3 -m benchmarks.recall produce reads engine/profile/provider/dimension from GET /v1/version and GET /v1/workspaces/current/ai-profile (not CLI labels)
  • default dataset is multilingual v1 (EN+ZH, including Chinese image-description queries)
  • latency_ms remains client perf_counter timing
  • producer stays on-demand; CI/make test-recall stay hermetic
  • structured-memory / unsupported filters are recorded but do not fail the produce command

Still open on #175

No real-memd baseline is checked into benchmarks/recall/baselines/. That needs a populated isolated memd + embedding provider run; inventing one would be false evidence.

Validation ledger

ID Criterion Command Result
V1 Producer unit + discovery HTTP fixture python3 -m unittest discover -s benchmarks/recall/tests PASS (48 tests)

…tefolk#175)

Read engine, profile, provider and embedding dimension from the running
memd instead of handwritten CLI labels. Keep the producer on-demand; do
not check in a fake real-memd baseline.
@sun-970

sun-970 commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

@waterbro-8 please review. Fork PR; I cannot request reviewers on this repo.

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Identity discovery from live /v1/version + /v1/workspaces/current/ai-profile is the right fail-closed shape for #175; dropping CLI provider/model/engine labels is correct.

Holding CODEOWNER approve until the Go check finishes. Please rebase onto current main (includes #222) — mergeStateStatus is BEHIND. Not product 验收.

waterbro-8
waterbro-8 previously approved these changes Sep 20, 2026

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review APPROVE (not product 验收). Go check is green.

Producer now copies engine/profile/provider/dimension from live memd; CLI labels are gone; structured-memory queries stay unsupported_source_kind and do not fail the run. Tests cover discovery and artifact identity.

Please rebase onto current main (includes #222) — mergeStateStatus is BEHIND.

@sun-970

sun-970 commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Rebased locally onto current main 7b8bad3 (#222). One commit, no conflicts.

Cannot push from this OAuth token: GitHub rejects updating .github/workflows/mcp-registry-publish.yml without workflow scope (the file lands because #222 is on main). maintainer_can_modify is on — please rebase from your side (or merge through main).

Local rebased heads:

@sun-970

sun-970 commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

Tried again to unstick the behind-by-1 vs main 7b8bad3 (#222).

POST /repos/sun-970/mem/merge-upstream (branch=main) was rejected:

HTTP 422
refusing to allow an OAuth App to create or update workflow `.github/workflows/mcp-registry-publish.yml` without `workflow` scope
documentation_url: https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository

Local rebase onto current main is clean (one commit, no conflicts). Did not rewrite or push the feature commit — this OAuth token still lacks workflow scope, so any push that introduces the #222 workflow files is refused.

maintainer_can_modify is on. @waterbro-8 can rebase this branch (or merge through main) from the GitHub UI.

Local rebased heads (not pushed):

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已检查本次分支更新:仅同步最新 main,并在 CHANGELOG.md 合并两条既有变更说明;未改动功能代码。批准合并。

waterbro-8
waterbro-8 previously approved these changes Sep 23, 2026

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formal review on exact head 2439c3716a2896b0b2684a3fb88614f849c4178b.

  • Producer discovers engine/profile/provider/dimension from live /v1/version and /v1/workspaces/current/ai-profile, not CLI labels.
  • Multilingual EN+ZH dataset includes Chinese image-description queries; latency remains client timing.
  • On-demand producer and hermetic CI boundary are preserved; unsupported structured-memory filters are recorded without failing the command.
  • Hosted checks are green and the focused producer suite is documented PASS (48 tests).

This approves the code change only. The populated isolated memd + real embedding-provider baseline required by issue #175 remains outstanding; do not close #175 until that producer receipt is committed.

@waterbro-8
waterbro-8 enabled auto-merge (squash) September 23, 2026 05:19

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

复审 exact head b7f8a14c4129597892e16b15e61091129d8430eb(未复用 2439c3716a28 的 APPROVE/DISMISSED)。未合。不是验收。不要关 #175。

阻断:

  • mergeable=CONFLICTING / mergeStateStatus=DIRTY,相对 main diverged(ahead 4 / behind 2)。90d066a / b7f8a14 只改 CHANGELOG,没有解开冲突。
  • 本 SHA 上 hosted checks 为空(fork sun-970/mem)。fail-closed,不能当完整 CI 通过。
  • CHANGELOG 卫生:b7f8a14 把 #175 live producer 那条写进了多段历史 ### Changed(不只 unreleased),重复条目不能当 reconcile 完成。

功能代码(live /v1/version + /v1/workspaces/current/ai-profile 发现身份、去掉 CLI 标签)形状没变,但当前 head 不能合。请同源 rebase 到最新 main、只在 unreleased 保留一条 #175 changelog、等 hosted CI(含 CodeQL)在 exact head 上绿后再叫复审。

#175 仍是 status:needs-triage;populated isolated memd + 真实 embedding-provider baseline 仍缺,不要关 issue。我不合。

#224
#175

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fresh review on exact head 454089a4f0f815855e0920d82736c2df7e06c302. All prior blockers are resolved: the branch now has latest main as its second parent and is MERGEABLE; CHANGELOG has exactly one #175 entry under Unreleased; #175 is status:ready; all 21 hosted checks pass. I also ran python3 -m unittest discover -s benchmarks/recall/tests on the final merge tree: 48 tests passed. The producer still discovers identity from live memd, retains measured client latency, includes EN+ZH/image-description queries, and stays on-demand. Approving this bounded code slice. Do not close #175 until the populated isolated-memd real-embedding baseline is checked in.

@waterbro-8
waterbro-8 enabled auto-merge (squash) September 24, 2026 07:39
@waterbro-8

Copy link
Copy Markdown
Collaborator

@Bindy-lbb / @PeterGuy326 请对 exact head 454089a4f0f815855e0920d82736c2df7e06c302 做最终正式 review。冲突、Changelog 和 readiness 均已修复;21/21 hosted checks + producer 48/48 local tests 通过,分支 MERGEABLE。已开 squash auto-merge;#175 仍保持 OPEN 等真实 baseline。

@waterbro-8 waterbro-8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

复审 exact head 454089a4f0f815855e0920d82736c2df7e06c302(未复用 b7f8a14c4129 的 REQUEST_CHANGES,也未复用 2439c3716a28)。未合。不是验收。不要关 #175。

上一轮阻断已解除:相对 main ahead、mergeable=MERGEABLE;CHANGELOG 只在 Unreleased 保留一条 #175 producer;hosted CI 21/21 绿,含 Go、PostgreSQL integration、CodeQL (go/python/javascript-typescript)。

代码仍是 live /v1/version + /v1/workspaces/current/ai-profile 发现身份、去掉 CLI 标签、on-demand producer。技术批准,不是产品验收,也不是 #175 populated isolated memd + 真实 embedding-provider baseline 完成。我不合。

#224
#175

@PeterGuy326 PeterGuy326 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Member approval on head 454089a (same head @waterbro-8 approved on 2026-09-24; his review plus this one should satisfy the required review count).

What I verified independently:

  1. discover_live_configuration is fail-closed in the right places: missing version string, non-dict active profile, missing embedding stage, empty provider/profile_id, and non-positive dimensions each abort with an explicit BenchmarkError instead of degrading to operator-guessed labels. The memd/<version> engine label cannot collide with the lexical-reference sentinel.
  2. Exit-code semantics: produce_exit_code restricts exit 2 to transport/mapping failures (unsupported_source_kind, unsupported_filter are expected dataset surface gaps), matching the README's contract that structured-memory rows are recorded rather than fatal.
  3. Docs stay honest: the README keeps the evidence boundary (producer ≠ live acceptance; #175's real-memd baseline remains open) while updating the command examples to the flag-less form. CHANGELOG entry matches the behavior.
  4. CI green on the full matrix including the recall benchmark and agent-host contract jobs.

No merge-blocking finding. Not product acceptance; #175 stays open for the real populated-memd baseline.

@PeterGuy326
PeterGuy326 merged commit c5f3fd5 into bytefolk:main Sep 29, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants