Skip to content

release: v0.1.1 — release the never-throw Dispatcher fix#12

Merged
Goosterhof merged 2 commits into
mainfrom
release/v0.1.1
Jul 2, 2026
Merged

release: v0.1.1 — release the never-throw Dispatcher fix#12
Goosterhof merged 2 commits into
mainfrom
release/v0.1.1

Conversation

@Goosterhof

Copy link
Copy Markdown
Collaborator

Release v0.1.1

Cuts a patch release for the one entry sitting in [Unreleased]: the never-throw Dispatcher fix.

Why now

ErrorTracker previously eager-injected Illuminate\Contracts\Bus\Dispatcher as a constructor dependency. When the Bus deferred provider is unresolvable, resolving the service threw a BindingResolutionException before report()'s try/catch — and because report() runs inside the consumer's exception handler, that throw escaped the reportable callback and replaced the original error with Target [Illuminate\Contracts\Bus\Dispatcher] is not instantiable (observed in a Laravel 12 app). The Bus is now resolved lazily inside report()'s guard, so the failure is swallowed and the original error is preserved.

Consumer impact

emmie (laravel/framework: 12.61.1) requires kendo-error-tracker: ^0.1.0 and currently resolves v0.1.0, which still carries the eager-injection bug — the exact Laravel-12 configuration where it was observed. emmie wires ErrorTracker::report() into app/Exceptions/Handler.php, so a binding failure there could mask the real exception in dev/staging. Tagging v0.1.1 lets emmie pick the fix up on the next composer update (the ^0.1.0 caret admits 0.1.1).

Contents

  • CHANGELOG.md: [Unreleased][0.1.1] — 2026-06-29. No code change in this PR — the fix already landed on main; this only versions it.

Post-merge

Tag the merge commit v0.1.1 so release.yml + the packagist webhook publish it.

🤖 Generated with Claude Code

Moves the [Unreleased] eager-Dispatcher-injection fix to [0.1.1]. The fix
resolves the Bus lazily inside report()'s guard so a BindingResolutionException
no longer escapes the consumer's exception handler (observed in Laravel 12).

emmie (Laravel 12, requires ^0.1.0) currently pulls v0.1.0, which still carries
the eager-injection bug — cutting v0.1.1 lets emmie pick the fix up on the next
composer update.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01KJtjLXkdnv4Bm4HV1f1zor
@Goosterhof Goosterhof added the Agent Review Requested Requesting review of specialized AI review agents. label Jun 29, 2026
@Goosterhof Goosterhof added the Agent Review Requested Requesting review of specialized AI review agents. label Jun 29, 2026
@jasperboerhof

Copy link
Copy Markdown
Contributor

Town Crier Review · 9/10 · PASS · 🔎 Independent

kendo-error-tracker #12 · AC anchor: PR description — v0.1.1 release · head 1ddceaccfb · via the town-crier bus (request #21)

Tip

Docs-only release PR: the sole diff cuts a ## [0.1.1] — 2026-06-29 header in CHANGELOG.md, rolling the previously-[Unreleased] never-throw Dispatcher fix under it. I ran the doc-fidelity surface deep and verified the entry's claim — bus resolved lazily inside report()'s guard rather than eagerly injected — against src/ErrorTracker.php:39-67 (constructor takes Container not Dispatcher; report() calls container->make(Dispatcher::class) inside its try/catch), so the doc faithfully records the shipped code; semver, date, and the Keep-a-Changelog cut are all correct, and the branch is main plus this one commit.

No findings — clean against the review checklist.

@jasperboerhof jasperboerhof left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved — Town Crier verdict PASS @Head, CI green, no open MAJOR+ thread. Our approval is our independent vote (approve-alongside): a peer's review / CHANGES_REQUESTED never withholds it — we verify every blocker ourselves, and a real one drops our own verdict below PASS. See the verdict comment + inline notes.

@Goosterhof Goosterhof left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirming the prior PASS. Docs-only release PR — the diff is two lines cutting a ## [0.1.1] — 2026-06-29 header so the previously-[Unreleased] never-throw Dispatcher fix rolls under a versioned heading. No code change, as the description states.

I re-walked the load-bearing claim independently rather than taking it on faith: the CHANGELOG entry asserts the bus is resolved lazily inside report()'s guard rather than eager-injected. Verified against src/ErrorTracker.php at head 1ddceac:

  • The constructor takes Illuminate\Contracts\Container\Container $container, not Illuminate\Contracts\Bus\Dispatcher — no eager BindingResolutionException at resolve time.
  • report() calls $this->container->make(Dispatcher::class)->dispatch(new ReportErrorJob($payload)) inside the try { … } catch (Throwable $e) block, so an unresolvable Bus deferred provider is swallowed to error_log and the consumer's original exception is preserved.

That swallow-on-failure / never-throw path is the privacy control the NEN 7510 / AVG consumer territories (emmie, codebook, ublgenie) lean on, so a regression here would be a real blocker — there is none. The doc faithfully records the shipped code.

Housekeeping checks pass: 0.1.0 → 0.1.1 is a correct patch bump (bug fix, no public-API change), the date matches today, and the em-dash heading style is consistent with the existing [0.1.0] — 2026-06-08 entry. CI is green on both PHP 8.4 and 8.5.

No blockers, no concerns, no nits. PASS. COMMENT rather than APPROVE only because this is a war-room-authored PR (self-approve blocked) — the verdict is approve-worthy.

Automated war-room agent review — posted because this PR carries the Agent Review Requested label.

@jasperboerhof

Copy link
Copy Markdown
Contributor

Town Crier Review · 9/10 · PASS · 🤝 Confirm

kendo-error-tracker #12 · AC anchor: PR description (no kendo issue linked; fallback per Step 1.2) · head 350df73348 · via the town-crier bus (request #21)

Tip

Docs-only release PR (CHANGELOG.md header insertion rolling the never-throw Dispatcher fix under ## [0.1.1]) — corroborates both the bus's and Goosterhof's off-bus PASS: the changelog's technical claim (lazy Dispatcher resolution inside report()'s guarded try/catch) checks out against src/ErrorTracker.php at current head 350df73, semver/date/format are correct, and CI is green. The only point we push back on is an immaterial tail remark about exact commit count, which has no bearing on the release.

No findings — clean against the review checklist.

Bus thread · 1 prior review(s):

  • dispatch (independent): Independent first look (empty thread). PASS 9/10 — no findings. Docs-only release PR: the sole diff cuts a ## [0.1.1] — 2026-06-29 header in CHANGELOG.md, rolling the previously-[Unreleased]

@jasperboerhof jasperboerhof left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved — Town Crier verdict PASS @Head, CI green, no open MAJOR+ thread. Our approval is our independent vote (approve-alongside): a peer's review / CHANGES_REQUESTED never withholds it — we verify every blocker ourselves, and a real one drops our own verdict below PASS. See the verdict comment + inline notes.

@Goosterhof Goosterhof left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Approve-worthy

0 blockers · 0 concerns · 0 nits · 0 inline

Round 4 — since 1ddceac: 0 addressed, 0 new, 0 open. The only delta at this head (350df73) is a merge-in of main dropping .github/workflows/announce-pr.yml (155 lines, superseded by the ADR-0036 GitHub App producer) — no touch to CHANGELOG.md or src/. Verified directly: git diff --stat 1ddceacc..350df733 shows exactly that one file.

CI green on both check (8.4) and check (8.5).

This re-confirms my prior review (pullrequestreview-4592793607 at 1ddceac) and the bus's already-resolved 3-review consensus (dispatch independent PASS + dispatch confirm + my confirm, resolved 2026-07-01). Nothing to add — same docs-only two-line CHANGELOG bump ([Unreleased][0.1.1] — 2026-06-29), no code change, the never-throw Dispatcher fix entry still faithfully records the shipped guard in ErrorTracker::report(). Posting as coverage for the new head SHA since the bus thread is already resolved; not re-litigating settled ground.

COMMENT rather than APPROVE: war-room-authored PR, self-approve blocked.

Automated war-room agent review — posted because this PR carries the Agent Review Requested label.

@Goosterhof Goosterhof merged commit 25327c0 into main Jul 2, 2026
2 checks passed
@Goosterhof Goosterhof deleted the release/v0.1.1 branch July 2, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Agent Review Requested Requesting review of specialized AI review agents.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants