Spec: Admission: a validator timeout is transient infra, not a spec refusal
Merged PR in mattpolicastro/nightshift: "Spec: Admission: a validator timeout is transient infra, not a spec refusal"
View pull requestNotes on work, tech, and life.
Spec: Admission: a validator timeout is transient infra, not a spec refusal
Merged PR in mattpolicastro/nightshift: "Spec: Admission: a validator timeout is transient infra, not a spec refusal"
View pull requestSpec: Runs: use the source clone's repo-local credential helpers for base fetch and publish push
Merged PR in mattpolicastro/nightshift: "Spec: Runs: use the source clone's repo-local credential helpers for base fetch and publish push"
View pull requestSpec: Verify: mark truncated output and name the full log
Merged PR in mattpolicastro/nightshift: "Spec: Verify: mark truncated output and name the full log"
View pull requestSpec: Seal: always freeze agent-steering files (AGENTS.md, CLAUDE.md, .claude, .mcp.json)
Merged PR in mattpolicastro/nightshift: "Spec: Seal: always freeze agent-steering files (AGENTS.md, CLAUDE.md, .claude, .mcp.json)"
View pull requestSpec: Agents: classify usage limits from rate_limit_event, not the agent's own words
Merged PR in mattpolicastro/nightshift: "Spec: Agents: classify usage limits from rate_limit_event, not the agent's own words"
View pull requestCI: plugin canary on schedule/dispatch only; print SDK version instead of npm ls
Merged PR in mattpolicastro/nightshift: "CI: plugin canary on schedule/dispatch only; print SDK version instead of npm ls"
View pull request“You Can See Everything” …and maybe I’d wish I’d seen less!!!!! (Good lord what a movie)
View on Blueskyplugin: search and sort Factory runs
Merged PR in mattpolicastro/nightshift: "plugin: search and sort Factory runs"
View pull requestSpec: Forge: enable Gitea dispatch (atomic-safe labels, bot-only markers, allowlist trust)
Merged PR in mattpolicastro/nightshift: "Spec: Forge: enable Gitea dispatch (atomic-safe labels, bot-only markers, allowlist trust)"
View pull requestMerge branch 'main' into spec/mattpolicastro__nightshift-issue-150-forge-enable-gitea-dispatch-atomic-safe
Pushed 47 commits to mattpolicastro/nightshift • Merge pull request #167 from mattpolicastro/ci/gitea-contract • Merge branch 'main' into ci/gitea-contract • Merge branch 'main' into ci/gitea-contract • ci: run the Gitea contracts as a ci.yml job • ci: gitea-contract job against a digest-pinned Gitea service • Merge pull request #167 from mattpolicastro/ci/gitea-contract • Merge branch 'main' into ci/gitea-contract • Merge branch 'main' into ci/gitea-contract • ci: run the Gitea contracts as a ci.yml job • ci: gitea-contract job against a digest-pinned Gitea service • specloop: archive mattpolicastro__nightshift-issue-150-forge-enable-gitea-dispatch-atomic-safe into openspec/specs • specloop: complete task 1.5 • specloop: task 1.5 Update current Gitea operator guidance (about 300 lines). After dispatch lands, reconcile only affected passages in README.md, KNOWN-LIMITATIONS.md, docs/specloop/README.md, docs/ar • specloop: complete task 1.4 • specloop: task 1.4 Enable guarded Gitea dispatch and preserve retry behavior (about 300 lines, after 1.1–1.3). Add forge=None only to the four stage signatures/default sites in nightshift/specloop_int • specloop: complete task 1.3 • specloop: task 1.3 Authorize Gitea label actors from the allowlist (about 200 lines). Branch in nightshift/specloop_intake.py:_label_actor_association before GitHub validation/owner/membership reads, • specloop: complete task 1.2 • specloop: task 1.2 Make marker evidence bot-only and exact (about 300 lines). Add the separate bot_comment_pages view in nightshift/forge/gitea.py and use it for adapter upserts and the two marker con • openspec(#150): allow the legacy revision-marker fixture under final-line matching • specloop: complete task 1.1 • specloop: task 1.1 Make Gitea transitions add-first (about 150 lines). In nightshift/forge/gitea.py, verify all sorted unique destination additions before source removals; retain fresh label resolutio • specloop: archive mattpolicastro__nightshift-issue-170-gitea-timeline-and-combined-status-pages into openspec/specs • specloop: complete task 1.2 • specloop: task 1.2 After 1.1 lands, implement row `status` decoding, validated null-terminal envelopes, nonempty snapshot consistency and explicit no-status handling in `nightshift/forge/gitea.py:chec • specloop: complete task 1.1 • specloop: task 1.1 Implement timeline-only null termination and per-page count handling in `nightshift/forge/gitea.py:_pages`, retaining its interface, exact path confinement and all other safeguards. • Draft OpenSpec change mattpolicastro__nightshift-issue-170-gitea-timeline-and-combined-status-pages (specloop propose, round 1) • Merge pull request #169 from mattpolicastro/spec/mattpolicastro__nightshift-issue-165-gitea-read-label-actions-and-unpaginated • specloop: archive mattpolicastro__nightshift-issue-165-gitea-read-label-actions-and-unpaginated into openspec/specs • specloop: complete task 1.3 • specloop: task 1.3 Read review comments once per review and complete regression verification (target 150–220 changed lines). Extend the private helper's exact endpoint delegation to per-review comment • specloop: complete task 1.2 • specloop: task 1.2 Read issue comments as complete responses, including landing (target 200–280 changed lines). In `nightshift/forge/gitea.py`, implement the private one-GET comment reader and exact i • specloop: complete task 1.1 • specloop: task 1.1 Decode label actions from body and correct fake timeline serialization (target 100–180 changed lines). In `nightshift/forge/gitea.py:label_event_pages`, accept only string `"1"`/`"" • Merge main (#166 parser fix) into spec/mattpolicastro__nightshift-issue-165-gitea-read-label-actions-and-unpaginated • Draft OpenSpec change mattpolicastro__nightshift-issue-165-gitea-read-label-actions-and-unpaginated (specloop propose, round 3) • Draft OpenSpec change mattpolicastro__nightshift-issue-165-gitea-read-label-actions-and-unpaginated (specloop propose, round 2) • specloop: archive mattpolicastro__nightshift-issue-165-gitea-read-label-actions-and-unpaginated into openspec/specs • specloop: complete task 1.3 • specloop: task 1.3 Read review comments once per review and complete regression verification (target 150–220 changed lines). Extend the private helper's exact endpoint delegation to per-review comment • specloop: complete task 1.2 • specloop: task 1.2 Read issue comments as complete responses, including landing (target 200–280 changed lines). In `nightshift/forge/gitea.py`, implement the private one-GET comment reader and exact i • specloop: complete task 1.1 • specloop: task 1.1 Decode label actions from body and correct fake timeline serialization (target 100–180 changed lines). In `nightshift/forge/gitea.py:label_event_pages`, accept only string `"1"`/`""
View commits