Two unrelated changes that both became possible once #10 and #11 landed on main.
Read the workflow only from main
The file carried pull_request alongside pull_request_target because a workflow read from the base branch cannot test the change that introduces it. That is done, so the second trigger goes and the header stops describing a transition rather than what the file does: the workflow comes from main, so a branch cannot repoint runs-on: at a runner nothing hardened.
The two runner-env jobs drop their explicit ref: at the same time and for the same reason. They assert on the runner rather than on the change, so their assertions should come from main — which is what a bare checkout gives under pull_request_target, and which means a branch can neither weaken those tests nor delete them. test/ci-runner.bats is on main now, so a bare checkout finds it.
The jobs that do test the change keep naming the head permanently; without a ref they would check out the base branch and pass regardless of the change.
job
checkout
tests
head.sha
compose-schema
head.sha
runner-env (confined)
bare — base branch
runner-env (privileged)
bare — base branch
Wordmark on the README
Above a heading that now reads Continuous Integration Hardener — the acronym spelled out, and no second "dejima" after the one the wordmark already carries.
The wordmark is a fixed file rather than anything preference-aware.prefers-color-scheme reports the browser's setting, never the site's, and this is read on a forge that renders dark whichever way the browser is set — so a conditional version shows dark ink on a dark page to a reader whose browser prefers light, and does it silently. Both ink colours are committed so a mirror on a light-themed host changes one filename rather than a filename and an asset.
The marks are trademarks and are not covered by the GPL that covers the code. Rather than restate that here, the README and assets/README.md point at dejima's ATTRIBUTION.md, which is the single statement for the organisation. Those links are absolute: a fork resolving a relative one would find its own copy of the terms instead of the canonical one.
Also: the address guard skips binary files now. It passed on these images by luck, and one whose bytes happened to look like an address would have failed a check on a file nobody can read or fix.
Merge order
This depends on dejima/dejima carrying ATTRIBUTION.md first — both links here point at it, and until it exists they are links to a 404.
Tested
bats test/ — 87 ok, 0 failed. The header was rendered through the forge's markdown API to confirm it resolves to the cream wordmark; every intra-repository link and anchor resolves.
**Summary generated by LLM agent**
Two unrelated changes that both became possible once #10 and #11 landed on `main`.
## Read the workflow only from `main`
The file carried `pull_request` alongside `pull_request_target` because a workflow read from the base branch cannot test the change that introduces it. That is done, so the second trigger goes and the header stops describing a transition rather than what the file does: the workflow comes from `main`, so a branch cannot repoint `runs-on:` at a runner nothing hardened.
The two `runner-env` jobs drop their explicit `ref:` at the same time and for the same reason. They assert on the *runner* rather than on the change, so their assertions should come from `main` — which is what a bare checkout gives under `pull_request_target`, and which means a branch can neither weaken those tests nor delete them. `test/ci-runner.bats` is on `main` now, so a bare checkout finds it.
The jobs that do test the change keep naming the head permanently; without a ref they would check out the base branch and pass regardless of the change.
| job | checkout |
| --- | --- |
| `tests` | head.sha |
| `compose-schema` | head.sha |
| `runner-env (confined)` | bare — base branch |
| `runner-env (privileged)` | bare — base branch |
## Wordmark on the README
Above a heading that now reads **Continuous Integration Hardener** — the acronym spelled out, and no second "dejima" after the one the wordmark already carries.
**The wordmark is a fixed file rather than anything preference-aware.** `prefers-color-scheme` reports the *browser's* setting, never the site's, and this is read on a forge that renders dark whichever way the browser is set — so a conditional version shows dark ink on a dark page to a reader whose browser prefers light, and does it silently. Both ink colours are committed so a mirror on a light-themed host changes one filename rather than a filename and an asset.
The marks are trademarks and are not covered by the GPL that covers the code. Rather than restate that here, the README and `assets/README.md` point at **dejima's `ATTRIBUTION.md`**, which is the single statement for the organisation. Those links are absolute: a fork resolving a relative one would find its own copy of the terms instead of the canonical one.
Also: the address guard skips binary files now. It passed on these images by luck, and one whose bytes happened to look like an address would have failed a check on a file nobody can read or fix.
## Merge order
**This depends on `dejima/dejima` carrying `ATTRIBUTION.md` first** — both links here point at it, and until it exists they are links to a 404.
## Tested
`bats test/` — 87 ok, 0 failed. The header was rendered through the forge's markdown API to confirm it resolves to the cream wordmark; every intra-repository link and anchor resolves.
The suffix names the mode a file is for, not the colour of its ink, so `-darkmode` is the pale wordmark that belongs on a dark page. Naming by ink reads backwards at the moment someone is picking a file in a hurry, and it collides with the logo variants, which are already named by mode.
The README points at one file unconditionally rather than switching on `prefers-color-scheme`, which reports the browser's setting and never the site's. A forge that renders dark whichever way the browser is set would then show dark ink on a dark page, silently, to a reader whose browser prefers light. Both files ship, so a mirror on a light-themed host changes one line where someone can see whether it worked.
The artwork is not covered by the GPL. Both the README and assets/README.md point at dejima's ATTRIBUTION.md for who holds the marks and what may be done with them, by absolute link, so a fork resolving it does not find its own divergent copy of the terms.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary generated by LLM agent
Two unrelated changes that both became possible once #10 and #11 landed on
main.Read the workflow only from
mainThe file carried
pull_requestalongsidepull_request_targetbecause a workflow read from the base branch cannot test the change that introduces it. That is done, so the second trigger goes and the header stops describing a transition rather than what the file does: the workflow comes frommain, so a branch cannot repointruns-on:at a runner nothing hardened.The two
runner-envjobs drop their explicitref:at the same time and for the same reason. They assert on the runner rather than on the change, so their assertions should come frommain— which is what a bare checkout gives underpull_request_target, and which means a branch can neither weaken those tests nor delete them.test/ci-runner.batsis onmainnow, so a bare checkout finds it.The jobs that do test the change keep naming the head permanently; without a ref they would check out the base branch and pass regardless of the change.
testscompose-schemarunner-env (confined)runner-env (privileged)Wordmark on the README
Above a heading that now reads Continuous Integration Hardener — the acronym spelled out, and no second "dejima" after the one the wordmark already carries.
The wordmark is a fixed file rather than anything preference-aware.
prefers-color-schemereports the browser's setting, never the site's, and this is read on a forge that renders dark whichever way the browser is set — so a conditional version shows dark ink on a dark page to a reader whose browser prefers light, and does it silently. Both ink colours are committed so a mirror on a light-themed host changes one filename rather than a filename and an asset.The marks are trademarks and are not covered by the GPL that covers the code. Rather than restate that here, the README and
assets/README.mdpoint at dejima'sATTRIBUTION.md, which is the single statement for the organisation. Those links are absolute: a fork resolving a relative one would find its own copy of the terms instead of the canonical one.Also: the address guard skips binary files now. It passed on these images by luck, and one whose bytes happened to look like an address would have failed a check on a file nobody can read or fix.
Merge order
This depends on
dejima/dejimacarryingATTRIBUTION.mdfirst — both links here point at it, and until it exists they are links to a 404.Tested
bats test/— 87 ok, 0 failed. The header was rendered through the forge's markdown API to confirm it resolves to the cream wordmark; every intra-repository link and anchor resolves.704b7527a7to9c49451529