Repository navigation
docs(adr): verified APA 7th citations for ADR-0001–0008 #48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,6 +7,32 @@ | |
|
|
||
| RFC-grounded subject grouping and sent-date ordering are useful for protocol-compatible presentation, but changing historical defaults can reorder existing callers' results. Subject equality is also weaker evidence than explicit reference headers. | ||
|
|
||
| RFC 5256 `REFERENCES` threading is a six-step algorithm whose first structural | ||
| steps reconstruct parent/child edges from identification fields (Crispin & | ||
| Murchison, 2008; Resnick, 2008; Zawinski, 1997–2002). Subject gathering and | ||
| sent-date sorting are later, optional stages of that same algorithm: | ||
|
Comment on lines
+10
to
+13
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: sed -n '1,45p' docs/adr/0003-optional-subject-date-policies.md
sed -n '25,45p' docs/adr/0001-canonical-batch-oracle.mdRepository: ContextualWisdomLab/ThreadWeave Length of output: 4509 🌐 Web query:
💡 Result: 🌐 Web query:
💡 Result: 🏁 Script executed: git diff --unified=12 0fda6e60c2c80ec7b2aa2d58dac6b944dec6a6d0 0da789d7cbd8e00dfb596f026e20c5b118d9270a -- docs/adr/0001-canonical-batch-oracle.md docs/adr/0003-optional-subject-date-policies.mdRepository: ContextualWisdomLab/ThreadWeave Length of output: 8393 RFC 단계와 ThreadWeave 정책을 구분해 기술하세요. RFC 5256 §3.3은 수정 제안-Subject gathering and
-sent-date sorting are later, optional stages of that same algorithm:
+RFC 5256은 subject gathering과 sent-date sorting을 `REFERENCES`
+알고리즘의 후속 단계로 정의합니다. ThreadWeave는 이 RFC 정의 단계를
+opt-in 정책으로 제공합니다:-Optional subject grouping and sent-date ordering are later
-policy stages of the same RFC 5256 algorithm; they are not a second oracle.
+RFC 5256은 subject grouping과 sent-date ordering을 `REFERENCES`
+알고리즘의 후속 단계로 정의합니다. ThreadWeave는 이 RFC 정의 단계를
+opt-in 정책으로 제공하며, 이 정책은 두 번째 oracle이 아닙니다.🤖 Prompt for AI Agents |
||
|
|
||
| - §2.1 requires a fixed base-subject extraction procedure after RFC 2047 | ||
| encoded-word decoding (Moore, 1996). A message is a reply or forward only when | ||
| extraction removes a `subj-refwd`, `(fwd)` trailer, or `[fwd: ...]` wrapper. | ||
| Removing a mailing-list blob alone does not classify the message. | ||
| - Subject comparison uses the RFC 5051 `i;unicode-casemap` preparation | ||
| (simple titlecase from `UnicodeData.txt`, then compatibility decomposition) | ||
| rather than locale-sensitive APIs or visual-confusable heuristics | ||
| (Crispin, 2007). RFC 5051 is not locale-sensitive and warns that Latin `A` | ||
| and Greek `Α` remain distinct. | ||
| - §2.2 defines sent-date recovery: adjust a valid RFC 5322 `Date` to UTC, treat | ||
| an invalid or absent zone as UTC, treat an invalid time as `00:00:00`, fall | ||
| back to mailbox `INTERNALDATE`, then the earliest representable UTC instant, | ||
| and break exact ties with the mailbox sequence number. Dummy children are | ||
| sorted before a dummy key is derived; after subject grouping, every sibling | ||
| set is sorted bottom-up. | ||
|
|
||
| Those stages are standards-track presentation policy, not a replacement for | ||
| reference ancestry. Enabling them by default would silently merge unrelated | ||
| conversations that share a base subject and would reorder historical | ||
| first-appearance results. | ||
|
|
||
| ## Decision | ||
|
|
||
| Reference threading remains authoritative. Subject fallback grouping is opt-in. RFC sent-date ordering is opt-in through `sort_by_sent_date`; first-appearance behavior remains the compatibility default. When ordering is enabled, the implementation uses the documented RFC 5256 date normalization/order rules. An explicit `sequence_number` is validated as a positive mailbox sequence number; when it is absent, the one-based input position is used only as an internal ordering fallback. The resulting effective ordering sequence values must be unique across all sorted messages. Input position is never inferred, exposed, or persisted as a public IMAP sequence number. | ||
|
|
@@ -17,4 +43,22 @@ Reference threading remains authoritative. Subject fallback grouping is opt-in. | |
| - Standards-compatible hosts can explicitly request the richer policy. | ||
| - Hosts that need public IMAP sequence-number serialization still supply and validate real mailbox identifiers at the presentation boundary; the ordering fallback does not create them. | ||
| - Tests must cover explicit sequence numbers, omitted-sequence fallback, duplicate effective values, both option states, and prove reference relationships are not weakened by subject grouping. | ||
| - Future default changes require a versioned compatibility decision and migration guidance. | ||
| - Future default changes require a versioned compatibility decision and migration guidance. | ||
|
|
||
| ## References | ||
|
|
||
| Crispin, M. (2007). *i;unicode-casemap - Simple Unicode Collation Algorithm* | ||
| (RFC 5051). RFC Editor. https://doi.org/10.17487/RFC5051 | ||
|
|
||
| Crispin, M., & Murchison, K. (2008). *Internet Message Access Protocol—SORT and | ||
| THREAD extensions* (RFC 5256). RFC Editor. https://doi.org/10.17487/RFC5256 | ||
|
|
||
| Moore, K. (1996). *MIME (Multipurpose Internet Mail Extensions) Part Three: | ||
| Message Header Extensions for Non-ASCII Text* (RFC 2047). RFC Editor. | ||
| https://doi.org/10.17487/RFC2047 | ||
|
|
||
| Resnick, P. (Ed.). (2008). *Internet Message Format* (RFC 5322). RFC Editor. | ||
| https://doi.org/10.17487/RFC5322 | ||
|
|
||
| Zawinski, J. (1997–2002). *Message threading*. | ||
| https://www.jwz.org/doc/threading.html | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
RFC의 부모 연결 단계를 구분하세요.
RFC 5256은 참조 체인 내부 링크에서 기존 부모를 보존하지만, 현재 메시지를 마지막 참조에 연결할 때는 기존 부모를 교체할 수 있습니다. 현재 문구는 두 규칙을 하나로 표현합니다. 두 단계를 구분해 적으세요. (rfc-editor.org)
🤖 Prompt for AI Agents