You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
HumanName.initials() re-derives the conjunction decision instead of honoring the parse's tags: john e smith gives j. s. from the facade and j. e. s. from parse() #528
Since PR #527, the core and the v1 facade split on which single letters are connectives. parse("john e smith").initials() gives j. e. s. (the e is read as an initial in a name written wholly in one case, rules.md#P3), while HumanName("john e smith").initials() still gives j. s.. The split runs both ways: parse("JUAN Y GARCIA").initials() gives J. G. and the facade gives J. Y. G.; parse("JUAN GARCIA Y LOPEZ").initials() gives J. G. L. and the facade J. G. Y. L..
Mechanism._facade._process_initial decides "conjunction" from vocabulary plus initial shape on the part's raw text (self._is_conjunction(part) and not _render._INITIAL.fullmatch(part)), never from the parse's conjunction / initial tags. #462 fixed one half of that (a bare capital or dotted letter is an initial) but the facade still cannot see the one-case fork, and capitalize() already delegates to the parsed view while initials() does not.
Fix shape, the same as R4's case repair. Where a part maps to a parsed token, read its tags: a conjunction-tagged word contributes no initial, an initial-tagged one contributes; fall back to vocabulary and shape only for spliced raw text (hn.middle = "...") that no token backs. That restores the #458 principle for the last derived view that re-decides from the word.
Pinned today as a deliberate divergence by tests/v2/test_render.py::test_facade_initials_do_not_yet_follow_the_one_case_fork; recorded at decisions.md#P3 as an Accepted consequence of #527. Closing this moves the facade's _initials in the differential at every baseline, so it needs its own ledger rules (the core's moved in #527 at 2.0.0–2.3.0 only).
Activity
test(#528): pins the review found missing
docs(review): the copy cost, the six names, and a restored dated entry
docs(design): the restored bullet keeps its measurement sentence
fix(#528): the token path hands the override real text
fix(#528): an overridden *_list property still feeds initials()
docs(review): the comments say what the second round measured
docs(design): the no-parse paths, and recipes a reader can rerun
test(#528): the keyword constructor is pinned beside pickle and copy
Merge pull request #529 from derek73/claude/528-facade-initials
fix(derek73#528): HumanName.initials() reads the parse's connective tags
chore(differential): the ledger comments say what was measured
docs(design+release): the record for derek73#528, and the two initial…
fix(derek73#461): a connective initials where it joins nothing
docs(derek73#397/derek73#461): the rules, the decisions and the relea…
refactor(derek73#397): one call answers both sides of a link, and the…