Merge pull request #181 from mattpolicastro/spec/mattpolicastro__nightshift-issue-179-admission-a-validator-timeout-is-transie
Pushed 69 commits to mattpolicastro/nightshift
• specloop: archive mattpolicastro__nightshift-issue-179-admission-a-validator-timeout-is-transie into openspec/specs
• specloop: complete task 1.1
• specloop: task 1.1 After #174, implement `ValidatorUnavailable(SpecError)` and single-call classification in `specloop/openspec.py`; narrowly forward it through admission/drafting validate-call handli
• Draft OpenSpec change mattpolicastro__nightshift-issue-179-admission-a-validator-timeout-is-transie (specloop propose, round 3)
• Draft OpenSpec change mattpolicastro__nightshift-issue-179-admission-a-validator-timeout-is-transie (specloop propose, round 2)
• Draft OpenSpec change mattpolicastro__nightshift-issue-179-admission-a-validator-timeout-is-transie (specloop propose, round 1)
• specloop: archive mattpolicastro__nightshift-issue-179-admission-a-validator-timeout-is-transie into openspec/specs
• specloop: complete task 1.1
• specloop: task 1.1 After #174, implement `ValidatorUnavailable(SpecError)` and single-call classification in `specloop/openspec.py`; narrowly forward it through admission/drafting validate-call handli
• Merge pull request #178 from mattpolicastro/spec/mattpolicastro__nightshift-issue-174-runs-use-the-source-clone-s-repo-local-c
• Merge branch 'main' into spec/mattpolicastro__nightshift-issue-174-runs-use-the-source-clone-s-repo-local-c
• specloop: archive mattpolicastro__nightshift-issue-174-runs-use-the-source-clone-s-repo-local-c into openspec/specs
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• specloop: complete task 1.4
• specloop: task 1.4 Extend `specloop/cli.py:_push` with optional keyword-only source and pass `ctx.m.repo` from both publish and finish. Use the shared helper environment and sanitized binary-output bo
• specloop: complete task 1.3
• specloop: task 1.3 Prepare push test compatibility before changing the production signature: migrate `_push` doubles/wrappers in `tests/test_specloop_act.py`, `tests/test_specloop_command_json.py`, `t
• specloop: complete task 1.2
• specloop: task 1.2 Integrate helper forwarding and the safe failure boundary into `specloop/loop.py:_fetch_publish_base`, preserving the no-helper branch, fetch limits and caller recovery. Add new `te
• specloop: complete task 1.1
• specloop: task 1.1 Add the shared byte-preserving helper reader, indexed-config environment builder and byte-first diagnostic formatter in `specloop/loop.py`, with tests in new `tests/test_specloop_cr
• Draft OpenSpec change mattpolicastro__nightshift-issue-174-runs-use-the-source-clone-s-repo-local-c (specloop propose, round 2)
• Draft OpenSpec change mattpolicastro__nightshift-issue-174-runs-use-the-source-clone-s-repo-local-c (specloop propose, round 1)
• specloop: archive mattpolicastro__nightshift-issue-174-runs-use-the-source-clone-s-repo-local-c into openspec/specs
• Merge pull request #176 from mattpolicastro/spec/mattpolicastro__nightshift-issue-164-verify-mark-truncated-output-and-name-th
• Merge branch 'main' into spec/mattpolicastro__nightshift-issue-164-verify-mark-truncated-output-and-name-th
• specloop: archive mattpolicastro__nightshift-issue-164-verify-mark-truncated-output-and-name-th into openspec/specs
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• specloop: complete task 1.1
• specloop: task 1.1 Preserve traceable verification tails: in `specloop/verify.py`, format only logs over 2,000 raw bytes with the specified marker plus newline and unchanged decoded tail, add and forw
• Draft OpenSpec change mattpolicastro__nightshift-issue-164-verify-mark-truncated-output-and-name-th (specloop propose, round 1)
• Merge branch 'main' into spec/mattpolicastro__nightshift-issue-164-verify-mark-truncated-output-and-name-th
• Merge pull request #175 from mattpolicastro/spec/mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files
• specloop: archive mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files into openspec/specs
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• Merge current PR base 594a3d252ba4a83b70e5b5309e1ba64eaa628f33
• specloop: complete task 1.1
• specloop: task 1.1 Update `specloop/seal.py`'s `_unsafe` and seal-time frozen-path handling as designed so the five reserved steering components are frozen at every depth, with unchanged files quiet a
• Draft OpenSpec change mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files (specloop propose, round 1)
• Merge pull request #175 from mattpolicastro/spec/mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files
• specloop: archive mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files into openspec/specs
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• Merge current PR base 594a3d252ba4a83b70e5b5309e1ba64eaa628f33
• specloop: complete task 1.1
• specloop: task 1.1 Update `specloop/seal.py`'s `_unsafe` and seal-time frozen-path handling as designed so the five reserved steering components are frozen at every depth, with unchanged files quiet a
• Draft OpenSpec change mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files (specloop propose, round 1)
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• specloop: complete task 1.4
• Merge pull request #177 from mattpolicastro/spec/mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l
• specloop: task 1.4 Extend `specloop/cli.py:_push` with optional keyword-only source and pass `ctx.m.repo` from both publish and finish. Use the shared helper environment and sanitized binary-output bo
• Merge branch 'main' into spec/mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l
• specloop: archive mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l into openspec/specs
• specloop: complete task 1.3
• Merge pull request #180 from mattpolicastro/ci/canary-version-check
• specloop: task 1.3 Prepare push test compatibility before changing the production signature: migrate `_push` doubles/wrappers in `tests/test_specloop_act.py`, `tests/test_specloop_command_json.py`, `t
• specloop: complete task 1.2
• CI: plugin canary on schedule/dispatch only; print the SDK version instead of npm ls
• specloop: task 1.2 Integrate helper forwarding and the safe failure boundary into `specloop/loop.py:_fetch_publish_base`, preserving the no-helper branch, fetch limits and caller recovery. Add new `te
• specloop: complete task 1.1
• specloop: task 1.1 Add the shared byte-preserving helper reader, indexed-config environment builder and byte-first diagnostic formatter in `specloop/loop.py`, with tests in new `tests/test_specloop_cr
• specloop: complete task 2.1
• specloop: task 2.1 Make the harness's verification pass on the branch head: (details: tests: expected exit 0, got timeout (FAIL, 900.05s))
• specloop: append acceptance fixes tasks
• specloop: complete task 1.2
• specloop: task 1.2 Connect structured quota waits and the overage hold to admitted work (target at most 300 changed lines including tests and docs). Extend specloop/quota.py:resume_at and minimally ed
• specloop: complete task 1.1
• specloop: task 1.1 Implement shared Claude telemetry decoding and classification (target at most 300 changed lines including tests). Extract the rate-limit decoder in nightshift/trace.py; append and p
• Draft OpenSpec change mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l (specloop propose, round 1)
specloop: archive mattpolicastro__nightshift-issue-163-seal-always-freeze-agent-steering-files into openspec/specs
Pushed 44 commits to mattpolicastro/nightshift
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• Merge pull request #177 from mattpolicastro/spec/mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l
• Merge current PR base 594a3d252ba4a83b70e5b5309e1ba64eaa628f33
• Merge branch 'main' into spec/mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l
• specloop: archive mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l into openspec/specs
• Merge pull request #180 from mattpolicastro/ci/canary-version-check
• CI: plugin canary on schedule/dispatch only; print the SDK version instead of npm ls
• specloop: complete task 2.1
• specloop: task 2.1 Make the harness's verification pass on the branch head: (details: tests: expected exit 0, got timeout (FAIL, 900.05s))
• specloop: append acceptance fixes tasks
• specloop: complete task 1.2
• specloop: task 1.2 Connect structured quota waits and the overage hold to admitted work (target at most 300 changed lines including tests and docs). Extend specloop/quota.py:resume_at and minimally ed
• specloop: complete task 1.1
• specloop: complete task 1.1
• specloop: task 1.1 Implement shared Claude telemetry decoding and classification (target at most 300 changed lines including tests). Extract the rate-limit decoder in nightshift/trace.py; append and p
• specloop: task 1.1 Update `specloop/seal.py`'s `_unsafe` and seal-time frozen-path handling as designed so the five reserved steering components are frozen at every depth, with unchanged files quiet a
• Draft OpenSpec change mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l (specloop propose, round 1)
• Merge current PR base 19b1213ac2f1a27832a030127028f332e2b20e02
• Merge pull request #177 from mattpolicastro/spec/mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l
• Merge branch 'main' into spec/mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l
• specloop: archive mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l into openspec/specs
• Merge pull request #180 from mattpolicastro/ci/canary-version-check
• CI: plugin canary on schedule/dispatch only; print the SDK version instead of npm ls
• specloop: complete task 2.1
• specloop: task 2.1 Make the harness's verification pass on the branch head: (details: tests: expected exit 0, got timeout (FAIL, 900.05s))
• specloop: append acceptance fixes tasks
• specloop: complete task 1.1
• specloop: task 1.1 Preserve traceable verification tails: in `specloop/verify.py`, format only logs over 2,000 raw bytes with the specified marker plus newline and unchanged decoded tail, add and forw
• specloop: complete task 1.2
• specloop: task 1.2 Connect structured quota waits and the overage hold to admitted work (target at most 300 changed lines including tests and docs). Extend specloop/quota.py:resume_at and minimally ed
• specloop: complete task 1.1
• specloop: task 1.1 Implement shared Claude telemetry decoding and classification (target at most 300 changed lines including tests). Extract the rate-limit decoder in nightshift/trace.py; append and p
• Draft OpenSpec change mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l (specloop propose, round 1)
• specloop: archive mattpolicastro__nightshift-issue-162-agents-classify-usage-limits-from-rate-l into openspec/specs
• Merge pull request #180 from mattpolicastro/ci/canary-version-check
• CI: plugin canary on schedule/dispatch only; print the SDK version instead of npm ls
• specloop: complete task 2.1
• specloop: task 2.1 Make the harness's verification pass on the branch head: (details: tests: expected exit 0, got timeout (FAIL, 900.05s))
• specloop: append acceptance fixes tasks
• specloop: complete task 1.2
• specloop: task 1.2 Connect structured quota waits and the overage hold to admitted work (target at most 300 changed lines including tests and docs). Extend specloop/quota.py:resume_at and minimally ed
• specloop: complete task 1.1
• specloop: task 1.1 Implement shared Claude telemetry decoding and classification (target at most 300 changed lines including tests). Extract the rate-limit decoder in nightshift/trace.py; append and p