development: code relying on another component cites its source; stage 2c: the heuristics review
test / test (push) Canceled after 0s

Owner, 2026-10-14: "нам нужно полное ревью кода на предмет всей этой
эвристики. Её не должно там, где можно посмотреть код и ответить точно и
однозначно", and "в коде таких наших блоков должно быть обоснование со
ссылкой на код компонента".

- development.md § Code that relies on another component's behaviour: the
  rule, with the form of the comment (component, the image's version, file,
  function; or a document's URL and section; or "measured on the stand,
  date" said as such), and fixtures saying whether they were seen or
  composed.
- Audit stage 2c: the line "what was taken on trust" becomes the heuristics
  review - an inventory over the whole tree written down as
  docs/assumptions-2026-10-14.md, then each answered from the source of the
  version the image runs, the comment added, the code fixed where it
  contradicts. Plan still 66 lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mix
2026-10-14 18:44:19 +03:00
co-authored by Claude Opus 5.5
parent 3c8628074f
commit 0f984ff8d8
2 changed files with 44 additions and 14 deletions
+20 -14
View File
@@ -873,20 +873,26 @@ those after it move up one patch number each.
shared files of lines (`from-lines-passed.txt`, `from-lines-other.txt`)
are kept: the second one's test becomes "never signed for {other}"
rather than "refused". - **Opus**
- [ ] **What was taken on trust, read in Postfix's source** (owner,
2026-10-14: "запиши себе правило не гадать, как работает код, если можно
посмотреть в его документацию или исходный код"; then "Есть ли ещё у нас
места, где мы угадывали?"). Postfix 3.7.11 - the image's version - read
for: (1) when qmgr expires a message against maximal_queue_lifetime - the
"+ maximal_backoff" margin of queued_over_lifetime is a guess; (2) whether
postlogd goes on writing to the renamed mail.log until the reload - the
rotation window the deferred tailer fix is about; (3) why an smtpd from
before a reload takes one more connection, and for how long - measured
(under 2 s), not understood; (4) the NOQUEUE reject line's fields - two
test fixtures carry a sasl_username= that Postfix does not write, one
of them presented as seen on the stand; they are corrected. What is read
goes into architecture.md with the file it is in; where it contradicts
the code, the code is fixed in this stage. - **Opus**
- [ ] **The heuristics review: every assumption about another component,
answered from its source** (owner, 2026-10-14: "нам нужно полное ревью
кода на предмет всей этой эвристики. Её не должно там, где можно
посмотреть код и ответить точно и однозначно" and "в коде таких наших
блоков должно быть обоснование со ссылкой на код компонента"; the rule is
in development.md § Code that relies on another component's behaviour).
First an inventory, over the whole tree (Go, build scripts, configs,
tests' fixtures, docs' claims): each place SelfPost relies on what
Postfix, OpenDKIM, Cyrus SASL, rspamd, supervisord, logrotate, Docker,
SQLite/modernc, go-milter or a browser does, with what is assumed and
what justifies it today (read, measured, nothing). It is written down as
`docs/assumptions-2026-10-14.md`. Then each is answered from the source
or documentation of the version the image runs, and the code gets the
comment that cites it; a measurement stays a measurement and says so;
where the source contradicts the code, the code is fixed in this stage.
Known before the inventory: qmgr's expiry against the queue lifetime (the
margin of queued_over_lifetime), postlogd after a rename (the rotation
window), the smtpd that outlives a reload (measured, not understood), the
NOQUEUE line's fields (two fixtures carry a sasl_username= Postfix does
not write, one presented as seen on the stand). - **Opus**
- [ ] Docs and wording: help topic sender-check and guide § Who an
application may send as (mockup first), security.md § Mail path,
CHANGELOG. - **Sonnet**