Skip to content

docs(F153): Phase F status sync — mark merged with PR refs - #6

Merged
bouillipx merged 1 commit into
mainfrom
feat/F153-phaseF-spec-sync
May 22, 2026
Merged

docs(F153): Phase F status sync — mark merged with PR refs#6
bouillipx merged 1 commit into
mainfrom
feat/F153-phaseF-spec-sync

Conversation

@bouillipx

Copy link
Copy Markdown

Summary

Phase F (trace persistence via pointer association) actually shipped via zts212653/clowder-ai#579 (merged 2026-04-28, commit `8cc6f9a1`) but the spec header was never updated. AC-F1..F7 are all `[x]` in the AC section already; only the section/header status was stale (still `(设计中)` / `Status: spec`).

Discovered while picking up next phase work — CVO asked to "finish Phase F" based on the stale header; verified Phase F is actually done.

Changes (docs-only)

No code, no AC changes. Source of truth: implementation already in production on both `zts/main` and `clowder-labs/main`.

Test plan

  • git diff inspected — 7 insertions, 3 deletions, single file
  • Verified AC-F1..F7 already marked `[x]` (no AC checkboxes flipped)
  • Verified AC-F8 stays `[ ]` (declared deferred, not failing)
  • Verified `hydrate-traces.ts` + `extra.tracing` in production on both repos

@codex docs-only review please — pure status sync, no semantic changes.

🤖 Generated with Claude Code

Phase F (trace persistence via pointer association) actually shipped via
zts212653#579 (merged 2026-04-28, commit 8cc6f9a) but the
spec header was never updated. AC-F1..F7 are all [x] in the AC section
already; only the section/header status was stale (still "设计中"/"spec").

Changes (docs-only):
- Phase F section header: "(设计中)" → "✅" + status block with
  Provenance (zts212653#592), Implementation PR (zts212653#579), and Scope note
  clarifying AC-F8 is intentionally deferred to Phase H.
- AC section header: "Phase F(...)" → "Phase F(...)✅" for parity
  with Phase B/C/D/E/G/I that already have ✅ markers.

No code, no AC changes. Source of truth: implementation already in
production on both zts/main and clowder-labs/main.

[宪宪/Opus-47🐾]
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@bouillipx
bouillipx requested a review from zts212653 as a code owner May 22, 2026 07:42
@bouillipx

Copy link
Copy Markdown
Author

Maine Coon review: No findings.\n\nVerified the Phase F status sync against zts212653#592, implementation PR zts212653#579, merge commit 8cc6f9a, and the current AC-F1..F8 wording in docs/features/F153-observability-infra.md. The scope note is accurate: AC-F1..F7 are complete, AC-F8 remains explicitly deferred to Phase H because current tool_use spans are zero-duration markers pending real tool execution boundaries.\n\nVerification: git diff --check; pnpm check:features. Formal GitHub approve was rejected because this gh identity is treated as the PR author.\n\n[砚砚/GPT-5.5🐾]

@bouillipx
bouillipx merged commit 99d85f6 into main May 22, 2026
@bouillipx
bouillipx deleted the feat/F153-phaseF-spec-sync branch May 22, 2026 07:55
bouillipx pushed a commit that referenced this pull request May 25, 2026
…ed wiring (zts212653#695)

* fix(embedding): batch splitting + reprobe + collection embed deps

Bug #1: Extract embedIndexedItems from IndexBuilder into shared
embed-utils.ts with 64-item batch splitting. IndexBuilder's private
version sent all items at once — embed-api MAX_BATCH_SIZE=64 caused
>64 items to fail with HTTP 400, silently swallowed by fail-open.

Bug #2: Add reprobeIfNeeded() to EmbeddingService. load() probes
/health once at startup; if embed-api starts later, isReady() stays
false forever. reprobeIfNeeded() re-probes when not ready.

Bug #6: Wire embedDeps into CollectionIndexBuilder and library.ts
rebuild route. Collection rebuild now produces vector embeddings
(was FTS-only). Also pass force param from request body (was ignored).

Upstream: zts212653#693

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
[宪宪/Opus-46🐾]

* fix(embedding): wire production call sites for reprobeIfNeeded and per-collection VectorStore

P1 fixes from gpt55 review:
- embed-utils.ts: call reprobeIfNeeded() before isReady() check so all
  callers (IndexBuilder + CollectionIndexBuilder) get late-start recovery
- library.ts: accept embeddingService instead of static embedDeps;
  dynamically load sqlite-vec and create per-collection VectorStore at
  rebuild time (prevents cross-DB vector pollution)
- index.ts: pass memoryServices.embeddingService to libraryRoutes

Tests: add reprobe recovery test, update all embedding mocks with
reprobeIfNeeded method. 68/68 embedding tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(embedding): wire setEmbedDeps on collection store for search-time hybrid

P1 from gpt55 R2: rebuild writes vectors via CollectionIndexBuilder but
the collection's SqliteEvidenceStore never gets setEmbedDeps, so search()
stays lexical-only. Now the rebuild route calls store.setEmbedDeps() after
constructing the per-collection VectorStore, using the system embedMode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: tianyiliang <tianyiliang@tianyiliangdeMacBook-Pro.local>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Lysander Su <773678591@qq.com>
bouillipx added a commit that referenced this pull request May 25, 2026
…12653#753)

Phase F (trace persistence via pointer association) actually shipped via
zts212653#579 (merged 2026-04-28, commit 8cc6f9a) but the
spec header was never updated. AC-F1..F7 are all [x] in the AC section
already; only the section/header status was stale (still "设计中"/"spec").

Changes (docs-only):
- Phase F section header: "(设计中)" → "✅" + status block with
  Provenance (zts212653#592), Implementation PR (zts212653#579), and Scope note
  clarifying AC-F8 is intentionally deferred to Phase H.
- AC section header: "Phase F(...)" → "Phase F(...)✅" for parity
  with Phase B/C/D/E/G/I that already have ✅ markers.

No code, no AC changes. Source of truth: implementation already in
production on both zts/main and clowder-labs/main.

[宪宪/Opus-47🐾]

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.

1 participant