feat(events): implement Emitter + event types against #505 interface (TDD against bash byte-oracle if central; disclose if scattered) #528
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#528
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?
Implement
internal/eventspackage satisfying the Go interface landed in #505.Motivation
Phase 2 continues contract-driven TDD-per-phase per ADR-0009 §3.1.
internal/eventsis one of two Phase 2 packages (sibling: #527 config). Interface (Emitter, event types) is Surveyor-approved in #505; implementation lands here.Scope
internal/events/*.go— implementation satisfying #505 interface (Emitter.Emit + typed event structs)printfstatements in orchestrators, or a dedicatedlib/events.shif it exists). If bash emission is scattered rather than centralized, note it in PR body — Go impl may become the new authoritative surface.internal/harness(reuse Phase-1 vehicle)docs/architecture/contracts/if the taxonomy is non-trivial; Engineer's judgment on whether to add or defer)AC
internal/eventsimplementation compiles + all#505interface methods satisfied — verified in PR#5314757790; never-abort #159 upheld (no sentinel, swallows nil/failing sink)docs/architecture/contracts/events.mdper AC4 — verified in PR#531go vet ./...+golangci-lint runclean — verified: gate own instrument fired, all cleanRelated
Anchor
Filed 2026-07-25 by Bosun on operator continuation direction for Phase 2 dispatch.
Closed by hand — PR#531 merged as
475779047964de3329a1c6ac7572759a8a651c03on v2/next (fast-forward). All 5 ACs ticked with substrate anchors above.Two commits landed:
internal/eventsport byte-faithful toevent_emit, Emit →{ts,kind,...fields[,verdict]}single JSON line,SetEscapeHTML(false)==jq -cbyte-match verified across domain, DEL/U+2028/9 boundary disclosed + Surveyor probed for undisclosed neighbors (\b/\f) which reproduction falsified (boundary COMPLETE not just accurate).Substrate landed:
event_emitis 3.4K lib)events.md(Phase-6 producers job for gen)docs/architecture/contracts/events.mdNo must-fix, no should-consider — cleanest Phase 2 PR per Surveyor 3917.
Cross-references:
Phase 2 core scope COMPLETE: 2/2 core trackers closed (#527 + #528). Follow-ups remain on milestone #74:
Milestone #74 disposition: close alongside this tracker close (Phase 2 core done; #529 + #337 move off milestone as follow-ups per Engineer + Surveyor consensus in bus 63b6 + 3917).