Skip to content

fix(memory): preserve source when indexing explicit notes - #4708

Open
junnhwan wants to merge 1 commit into
thedotmack:core-devfrom
junnhwan:fix/manual-memory-source-indexing
Open

junnhwan wants to merge 1 commit into
thedotmack:core-devfrom
junnhwan:fix/manual-memory-source-indexing

Conversation

@junnhwan

Copy link
Copy Markdown
Contributor

Explicit notes saved for Codex/Cursor have the correct SQLite session source,
but their live Chroma documents default to claude. A source-scoped semantic
search can then miss a successfully saved preference or lesson.

Pass the existing platformSource from the shared explicit-save/file-bridge
path to syncObservation. Keep the current normalization and omitted-source
Claude default. Add an isolated HTTP/file-watcher → disk SQLite → ChromaSync →
HTTP search regression, including identical text across sources, default Claude,
and exact watcher replay. Document both source inputs.

Closes #4707.

Validation

  • Unchanged main@356b7c08 and target core-dev@53e17ba0: both new cases fail
    (SQLite codex, vector metadata claude, scoped recall empty); the fix passes.
  • Relevant memory/source-scoping suites: 103 pass, 0 fail. The regression
    substitutes only MCP transport to fix candidate ranking, and disables the
    unrelated Grok Bot index notification; HTTP, parsing, SQLite, formatting,
    filtering and hydration are real.
  • Separate actual Chroma MCP round trip: unchanged core-dev writes claude
    and a Codex-filtered query is empty; patched code writes codex and retrieves
    the matching SQLite ID. Temporary data only; embeddings/latency are not benchmarked.
  • Pre-build version consistency: 13 pass; root/viewer typecheck, build,
    hook-IO/spawn-env checks pass; OpenClaw: 56 pass.
  • Full bun test tests: 8204 pass, 37 skip, 8 fail, including both new cases
    passing. Six failures reproduce on unchanged core-dev in the same isolated
    environment: four transcript anchor/retry cases and two native-memory
    recognition cases. The Chroma connection-failure timeout and dependency-health
    assertion pass as isolated files on both versions and remain unclassified
    full-suite failures. No clean full-suite or CI result is claimed.

macOS arm64, Bun 1.4.2, Node 26.7.0. Build succeeds with worker/transcript-watcher
advisory-size warnings identical to a separate unchanged-base build.
Release-generated bundles were rebuilt for validation and excluded from the diff.
No schema, setting, backfill/recovery system or behavior change for default
Claude notes. Previously mislabeled vectors are not repaired by this patch.

AI assistance: investigation and regression coverage were prepared with Codex;
the reported checks were executed locally.

@greptile-apps

greptile-apps Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Medium impact] Safe to merge within the stated scope. Executed regressions confirm source parity and scoped recall for HTTP and watcher saves, while preserving the default Claude source and exact watcher replay.

T-Rex evidence

Evidence from the check

  • The unchanged requested test was executed against both revisions and launches separate HTTP and watcher child processes.

Evidence from the check

  • The unchanged child fixture was executed by the regression test and defines the real application paths and mocked MCP boundary.

Evidence from the check

  • This executed fixture adds response logging and collects parity and recall failures so every requested path is visible even when base fails.

Evidence from the check

  • This executed script creates an isolated base worktree, reuses installed dependencies, runs identical checks on both revisions, and captures comparable output.

Command output from the check

  • Executed the isolated regression and observable HTTP/watcher flows on base, reproducing Claude-labeled Codex/Cursor documents and missing source-scoped recall.

Command output from the check

  • Executed the same checks on head, confirming correct source metadata, exact source-scoped recall, unchanged replay behavior, and persisted SQLite data.

Command output from the check

  • Captured the comparison script's successful execution and all six child exit statuses, showing base failures and head successes.

View artifacts

Summary

Explicit notes now pass their existing platformSource to Chroma indexing.

  • Explicit notes keep their source when Chroma indexes them.

No actionable issues were found. The change is safe to merge within its stated scope.

Acknowledgment: junnhwan explicitly states that previously mislabeled vectors are not repaired. Backfill is outside this patch’s stated scope.

Reviews (1) · Last reviewed commit: "fix(memory): retain platform source when..." · Reviewed by Greptile

This branch has not been deployed

No deployments
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