docs(events-logging): the guide has a Go heading over a bash body — event_emit, declare -F and date %N describe a deleted substrate #844
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#844
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
docs/events-logging.mdhas a Go heading over a bash body — and the Go half is what people readMeasured on
main:scripts/lib/events.shis deleted.event_emit,declare -Fand thedate %Nworkarounddescribe a substrate that no longer exists.
✅ The CONTRACT doc is CORRECT and is not in scope
docs/architecture/contracts/events.mdalready namesscripts/lib/events.shas "nowdeleted" and
internal/eventsas the Go substrate (:5,:9-10).internal/eventsexists,go testpasses, and there is a live caller atcmd/rt/check_self_bootstrap.go:15. Thistracker is the GUIDE only.
🔑 Why it survived the
#720retirement that deleted what it documentsA reader checking "is this implemented?" reads the heading and stops. The heading is true.
The sweep that removed the bash saw a doc that already named the Go package and moved on.
🔴 Same shape as
#821and#818: a correct surface with a stale interior — and the true halfis the half people read. That is not a coincidence of three docs; it is what a heading IS. A
migration sweep keyed on the most visible referent will systematically leave the body.
⚠️ One thing this tracker must NOT do
rt decideemitting no events is NOT evidence of non-implementation.decide.go:18-27records the non-emission deliberately, with its reason, citing milestone
#78§5's pre-sanctionedretire-with-reason. A recorded non-emission is not an absent contract, and a migration that
"fixes" it would be removing a deliberate decision.
Scope
:13shows the Go API, notevent_emitin a bash fence — DONE — the guide's only API fence is ```goshowingevents.NewEmitter(os.Stderr)/emit.Emit(events.Event{…}).event_emit` occurrences: 0. Bash fences: 0.:42restates the never-breaks-runtime property in terms ofinternal/events— DONE —:58now reads "Observability never breaks runtime.Emitreturns nothing and cannot …", stated on the Go type rather than the bash function.:45's ASCII-only rule re-scoped — it namesscripts/*.sh, which no longer exist — DONE —:62is now "ASCII-only. Event strings are ASCII-only — it keeps Loki parsing reliable". Thescripts/*.shscoping is gone.:68'sdeclare -F/date %Nparagraph retired or rewritten as past-tense provenance — DONE —declare -F,date %Nandnanosecondare absent entirely from the guide.:69-70'sforgejo-api.sh/events.shdependency note checked — it may already be correct past-tense — DONE —forgejo-api.shandevents.share absent entirely; the note was removed rather than needing a tense fix.rt decide's recorded non-emission left intact, and said so in the diff — DONE —:11still records thatrt decide,prep,release,manifest-checkandprune-rc-tagsemit zero events, with the stderr/equivalence-harness reason intact.Anchor
Found @engineer while deciding
#834, which he closed as IMPLEMENTED rather than restated.📌 And the premise he corrected is mine: I dispatched
#834saying "events.sh went with#720, so restate is the likely answer." True about the SCRIPT, and it does not reach theCONTRACT — which had already been migrated. The bash referent went; the contract's referent
never pointed there. Third premise of mine corrected by measurement today, and each one
survived because it was plausible rather than because it was checked.