Skip to content

wiring: the devkit's CI fails on a dispatch it cannot read or a devkit listener with no sender #163

Closed

Description

@brunogbv

v0.15.0 shipped notify-devkit.yml with its type in a JSON literal, which wiring.py cannot read, and a
bump-merge.yml that listens for bump-ready. The devkit's CI was green; the first place that saw the orphan was
the umbrella's v0.15.0 bump PR (marola-dev/marola#862, wiring --check), after the release (#161). Two gaps:
wiring.py skips a /dispatches call whose type it cannot read, with no message, and nothing in the devkit's CI
runs the wiring rules on the devkit's own workflows.

Acceptance criteria

  • wiring.py reports a step whose run calls /dispatches and yields no type it can read, as
    <repo> `<file>`: a dispatch whose type wiring cannot read; --check fails on it.
  • New wiring.py --lint-devkit [DIR] (default: this repo): reads the devkit's own .github/workflows, resolves a
    workflow's call of ./.github/workflows/<f> or marola-dev/marola-devkit/.github/workflows/<f>@<any ref> to
    the working-tree <f>, and fails
    on (1) an unreadable dispatch as above, and (2) a repository_dispatch type a devkit workflow listens for that no
    devkit workflow sends.
  • devkit-ci.yml runs it on every PR (in the python job's self-test commands or its own step), so a PR like notify-devkit: a consumer's green bump PR wakes bump-merge #158
    goes red before a release.
  • wiring.py --self-test covers both failures: a JSON-literal body with no EVENT* env, and a listener with no sender.

Named test

Activity

  1. added
    area/dev-toolingClaude Code / OpenCode / agentic-tooling dev workflow, not the product
    layer/infra.github/, scripts/, justfile, flake.nix, .githooks/, .claude/
    size/MRoughly 100-400 changed lines
    agent-readyPasses the five-rule Definition of Ready — an agent may begin work on it (MIP-0063 §5.4)
    and removed
    agent-readyPasses the five-rule Definition of Ready — an agent may begin work on it (MIP-0063 §5.4)
    on Oct 17, 2026
  2. self-assigned this
    on Oct 17, 2026
  3. moved this from Backlog to In progress in Marolaon Oct 17, 2026
  4. moved this from In progress to Done in Marolaon Oct 17, 2026
  5. brunogbv commented on Oct 17, 2026

    @brunogbv
    CollaboratorAuthor

    Proof before merge (#165):

    • Self-test: the new cases failed first (5 failure(s) with lint_devkit stubbed; fix round: workflow_dispatch_api_not_unread failed, the cycle case hit RecursionError), then wiring self-test: ok (43 cases).
    • The shipped defect: wiring.py --lint-devkit (this PR's script) on v0.15.0 (8da577b) exits 1 with
      wiring: marola-devkit `notify-devkit-test.yml`: a dispatch whose type wiring cannot read and
      wiring: dispatch `bump-ready` is listened for but never sent; on v0.15.1 (4ec0660) it exits 0.
    • CI: wiring: fail on a dispatch it cannot read #165's python / python-ci job ran python3 scripts/wiring.py --lint-devkit in "caller self-tests" (2026-10-17T03:20:42Z), success.

    Not proven yet: the new --check line in the umbrella; it runs when the umbrella pins the release that carries this.

  6. added a commit that references this issue on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/dev-toolingClaude Code / OpenCode / agentic-tooling dev workflow, not the productlayer/infra.github/, scripts/, justfile, flake.nix, .githooks/, .claude/size/MRoughly 100-400 changed lines

Type

No type

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions