Skip to content

fix(query): resolve sender identity within each message shard - #3

Merged
freanocank merged 1 commit into
freanocank:mainfrom
ShiTan-677:fix/shard-sender-identity
Oct 13, 2026
Merged

freanocank merged 1 commit into
freanocank:mainfrom
ShiTan-677:fix/shard-sender-identity

Conversation

@ShiTan-677

@ShiTan-677 ShiTan-677 commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Query results can swap [我] and [对方] when the account owner's Name2Id.rowid differs between message shards. The query layer previously detected one numeric sender ID and reused it across databases, even though those row IDs are database-local.

Resolve sender wxids through each shard's own Name2Id join in read, search (including the compressed-message fallback), recent and summary. Formatting compares the resolved wxid with the account owner and labels unresolved senders [未知] instead of guessing from a numeric ID. System-message labels are unchanged.

Validation on macOS / Python 3.12:

  • The synthetic swapped-row-ID regression failed for all four query paths before the fix.
  • python -m pytest -q: 90 passed, 1 skipped, including compressed-message search and unresolved-sender cases.
  • Compilation, macOS shell syntax checks and loading all six MCP tools passed.

All fixtures are synthetic; no WeChat data or keys are included. The fork CI matrix passed on macOS and Windows with Python 3.10 and 3.13: run 38035160551. The upstream fork-PR workflow still requires maintainer approval.

@freanocank
freanocank merged commit c00a5e0 into freanocank:main Oct 13, 2026
1 check passed
@freanocank

Copy link
Copy Markdown
Owner

Thanks for the fix and regression tests. Adopted through #15 with your original commits preserved. The cross-shard sender regressions pass in the combined branch.

The combined suite passes all four macOS/Windows × Python 3.10/3.13 CI jobs; Windows reports 209 passed, and macOS reports 208 passed with the Windows-only test skipped.

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.

2 participants