Skip to content

feat(fs): add direct mail identity primitives#660

Open
TZZheng wants to merge 1 commit into
Lingtai-AI:mainfrom
TZZheng:codex/issue-645-s1-direct-thread-identity
Open

feat(fs): add direct mail identity primitives#660
TZZheng wants to merge 1 commit into
Lingtai-AI:mainfrom
TZZheng:codex/issue-645-s1-direct-thread-identity

Conversation

@TZZheng

@TZZheng TZZheng commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add unread-independent primitives for direct-mail target identity and deterministic address fingerprints
  • normalize To endpoints across scalar/list representations with trimming, empty removal, stable ordering, and literal deduplication
  • reuse that normalizer in network topology construction and remove the superseded private recipient parser

Why

Issue #645 needs a stable filesystem-level definition of a direct one-to-one mail target before persistence and UI behavior can build on it. This PR isolates that contract so it can be reviewed and merged independently.

Test-first evidence

TestBuildNetworkDeduplicatesLiteralRecipientsPerMessage was added and run against the exact base before production changes. A message with To: ["bob", "bob"] failed because it contributed edge count 2 instead of 1. The implementation then made that focused regression and the new identity-helper tests pass.

Validation

  • go test ./internal/fs
  • go test .
  • exact reviewed HEAD: e6ae4c2f057762a11449be35023ddae6cb9d84e6
  • independent exact-head Claude review: PASS
  • independent exact-head Codex review: PASS

Scope

This PR intentionally does not add SessionCache persistence, durable unread state, or TUI behavior. Those responsibilities remain separate follow-up changes.

Part of #645.

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