Everything's an experiment.

Notes on work, tech, and life.

Recent updates:

GitHubpush

Merge pull request #44 from mattpolicastro/spec/nightshift-issue-31-evidence-track-mutant-timeouts-separatel

Pushed 25 commits to mattpolicastro/nightshift • specloop: archive nightshift-issue-31-evidence-track-mutant-timeouts-separatel into openspec/specs • specloop: complete task 1.3 • specloop: task 1.3 Add only the integer `timeouts` argument at the existing evidence-event call in `specloop/loop.py:section_evidence`. Add new event and reviewer-context tests in `tests/test_specloop • specloop: complete task 1.2 • specloop: task 1.2 In `specloop/evidence.py`, align the summary's caught fraction with the existing score filter, add the exact nonzero timeout-count line, and correct unmeasured wording while preserv • specloop: complete task 1.1 • specloop: task 1.1 In `specloop/evidence.py`, retain the first non-passing receipt in `_mutate_one`, apply invalid-step precedence, and return/document `timeout` for selected test receipts with null e • Draft OpenSpec change nightshift-issue-31-evidence-track-mutant-timeouts-separatel (specloop propose, round 1) • specloop: complete task 1.3 • specloop: task 1.3 Add only the integer `timeouts` argument at the existing evidence-event call in `specloop/loop.py:section_evidence`. Add new event and reviewer-context tests in `tests/test_specloop • specloop: complete task 1.2 • specloop: task 1.2 In `specloop/evidence.py`, align the summary's caught fraction with the existing score filter, add the exact nonzero timeout-count line, and correct unmeasured wording while preserv • specloop: complete task 1.1 • specloop: task 1.1 In `specloop/evidence.py`, retain the first non-passing receipt in `_mutate_one`, apply invalid-step precedence, and return/document `timeout` for selected test receipts with null e • specloop: complete task 3.1 • specloop: task 3.1 Style Details, Finished and Refresh in `plugins/nightshift/client/factory.tsx`, retaining the tested disclosure spacing, tree relationships and text, and using a decorative non-text • specloop: complete task 2.2 • specloop: task 2.2 In `plugins/nightshift/client/factory.tsx`, place all currently available navigation items in one secondary wrapping row apart from actions and confirmations, preserving Details gat • specloop: complete task 2.1 • specloop: task 2.1 In `plugins/nightshift/client/factory.tsx`, style the nested status chip and muted progress while retaining the exact combined Text content and direct-child change title. Add `statu • specloop: complete task 1.2 • specloop: task 1.2 Reuse the landed button styles for Confirm and Cancel in `plugins/nightshift/client/factory.tsx`. Add rendered confirmation tests in `plugins/nightshift/tests/factory-style.test.ts` • specloop: complete task 1.1 • specloop: task 1.1 In `plugins/nightshift/client/factory.tsx`, add local token-based action styles, minimum 44-by-44 targets, and wrapping, selecting roles from the unchanged `factoryButtons` order wi

View commits
GitHubpr merged

Spec: Evidence: track mutant timeouts separately from kills

Merged PR in mattpolicastro/nightshift: "Spec: Evidence: track mutant timeouts separately from kills"

View pull request
GitHubpr merged

Spec: Factory page: a styled UI pass

Merged PR in mattpolicastro/nightshift: "Spec: Factory page: a styled UI pass"

View pull request
GitHubpush

Merge pull request #32 from mattpolicastro/spec/nightshift-issue-10-one-unreadable-run-must-not-break-speclo

Pushed 80 commits to mattpolicastro/nightshift • specloop: archive nightshift-issue-10-one-unreadable-run-must-not-break-speclo into openspec/specs • specloop: complete task 3.2 • specloop: task 3.2 Add mixed healthy/error document tests through the daemon client and attention parser in Python tests and through Factory's injected executor in `plugins/nightshift/tests/factory.te • specloop: complete task 3.1 • specloop: task 3.1 Add `test_status_after_partial_finish` in `tests/test_specloop_act.py` using a real local archive commit, a stubbed failing external push, and a second healthy run; check named/all- • specloop: complete task 2.1 • specloop: task 2.1 Extract per-run JSON construction and implement the exception boundary and compatible synthetic error row in `specloop/cli.py`, using strict state reads and preserving named-unknown • specloop: complete task 1.2 • specloop: task 1.2 Strengthen the tests so each of these single-line mutations of code added in section 1 makes a test fail; where a mutation genuinely cannot change behaviour, say why in a comment on • specloop: strengthen section 1 after its evidence check • specloop: complete task 1.1 • specloop: task 1.1 Add opt-in `require_existing` loading to `Run` construction, `for_change`, and reload behavior in `specloop/state.py`; keep admission defaults and unknown-field compatibility. Add u • Draft OpenSpec change nightshift-issue-10-one-unreadable-run-must-not-break-speclo (specloop propose, round 1) • Draft OpenSpec change nightshift-issue-10-one-unreadable-run-must-not-break-speclo (specloop propose, round 1) • Merge pull request #43 from mattpolicastro/fix/in-flight-name-files • Drafter: the implementer never sees the in-flight list, so name files to avoid • Draft OpenSpec change nightshift-issue-5-check-who-applied-a-front-door-label (specloop propose, round 1) • Merge pull request #27 from mattpolicastro/spec/nightshift-issue-4-run-evidence-gate-mutants-in-parallel • specloop: archive nightshift-issue-4-run-evidence-gate-mutants-in-parallel into openspec/specs • specloop: complete task 4.1 • specloop: task 4.1 Address review feedback 1: "**mattpolicastro:**\n\nHosted CI fails 13 tests in `tests/test_specloop_evidence.py`, every one a prepared-mode (`[True]`) variant. For example, `test_fa • specloop: append review round 1 • specloop: complete task 3.2 • specloop: task 3.2 Add `test_parallel_mutants_match_serial_results` and `test_parallel_mutants_respect_time_box` in `tests/test_specloop_evidence.py`, exercising the landed dispatcher with prepared/un • specloop: complete task 3.1 • specloop: task 3.1 Add bounded thread-pool dispatch and index-based collection in `specloop/evidence.py`; drain active workers before baseline cleanup and propagate unexpected errors. Add event-driven • specloop: complete task 2.3 • specloop: task 2.3 Strengthen the tests so each of these single-line mutations of code added in section 2 makes a test fail; where a mutation genuinely cannot change behaviour, say why in a comment on • specloop: strengthen section 2 after its evidence check • specloop: complete task 2.2 • specloop: task 2.2 Apply immutable baseline-derived timeout overrides to mutant prepare and verify steps in `specloop/evidence.py`; add exact-budget and real short subprocess timeout tests alongside t • specloop: complete task 2.1 • specloop: task 2.1 Refactor `specloop/evidence.py` to use a private source and fresh build through `verify.run_extracted` for each mutant, initially retaining serial dispatch; keep the baseline immuta • specloop: complete task 1.1 • specloop: task 1.1 Add `Manifest.mutation_parallel` and strict positive-integer parsing in `specloop/manifest.py`, with default, invalid-type, explicit serial limit and template/load round-trip tests • Draft OpenSpec change nightshift-issue-4-run-evidence-gate-mutants-in-parallel (specloop propose, round 1) • Merge pull request #38 from mattpolicastro/fix/implementer-no-run-notes • Implementer: run results go in the summary, never in a repository file • Merge pull request #26 from mattpolicastro/spec/nightshift-issue-25-factory-page-fold-finished-runs-away • specloop: archive nightshift-issue-25-factory-page-fold-finished-runs-away into openspec/specs • specloop: complete task 4.1 • specloop: task 4.1 Append focused regression tests in `plugins/nightshift/tests/factory-view.test.ts` for status transitions, retained disclosure choice across refreshes and temporary empty finished g • specloop: complete task 3.1 • specloop: task 3.1 Append additional action regression tests in `plugins/nightshift/tests/factory-view.test.ts` for both Finish and Abort, verifying no send before confirmation, post-action status tra • specloop: complete task 2.2 • specloop: task 2.2 Strengthen the tests so each of these single-line mutations of code added in section 2 makes a test fail; where a mutation genuinely cannot change behaviour, say why in a comment on • specloop: strengthen section 2 after its evidence check • specloop: complete task 2.1 • specloop: task 2.1 Use `groupFactoryRuns` in `plugins/nightshift/client/factory.tsx`, add the initially collapsed accessible Finished toggle, reuse FactoryRow for both groups, and update counts and th • specloop: complete task 1.1 • specloop: task 1.1 Add `groupFactoryRuns(runs: readonly FactoryRun[]): { active: FactoryRun[]; finished: FactoryRun[] }` in `plugins/nightshift/client/factory-model.ts`, leaving `orderFactoryRuns` unc • Draft OpenSpec change nightshift-issue-25-factory-page-fold-finished-runs-away (specloop propose, round 2) • Draft OpenSpec change nightshift-issue-25-factory-page-fold-finished-runs-away (specloop propose, round 1) • Merge pull request #36 from mattpolicastro/fix/spec-stage-checks • Spec stage: catch human-only tasks, work in flight, and broken spec guarantees • Merge pull request #29 from mattpolicastro/spec/nightshift-issue-24-front-door-honour-blocked-by-before-draf • specloop: archive nightshift-issue-24-front-door-honour-blocked-by-before-draf into openspec/specs • specloop: complete task 1.2 • specloop: task 1.2 Add focused tests in `tests/test_specloop_intake.py` for pending background-job collection followed by delivery after a blocker reopens, open-PR recovery without a receipt, a body w • specloop: complete task 1.1 • specloop: task 1.1 Add the new-round blocker check and INFO logger in `nightshift/specloop_intake.py` at the boundary described in `design.md`. Add only new local test support and the three required t • Draft OpenSpec change nightshift-issue-24-front-door-honour-blocked-by-before-draf (specloop propose, round 1) • Draft OpenSpec change nightshift-issue-24-front-door-honour-blocked-by-before-draf (specloop propose, round 2) • Merge pull request #22 from mattpolicastro/spec/nightshift-issue-11-attention-list-infra-pauses-past-their-a • specloop: archive nightshift-issue-11-attention-list-infra-pauses-past-their-a into openspec/specs • specloop: complete task 2.2 • specloop: task 2.2 Add marked snapshot regressions in `tests/test_specloop_attention.py` for malformed allowances after a successful read, offline cached exhausted/requested entries, and successful re • specloop: complete task 2.1 • specloop: task 2.1 Replace `HUMAN_REASONS` in `nightshift/specloop_attention.py` with the allowance predicate, missing-field fallback, and allowance validation. Extend `tests/test_specloop_attention.p • specloop: complete task 1.1 • specloop: task 1.1 Add `pause.auto_resumes_remaining` in `specloop/cli.py::_status_json` using `serve.AUTO_RESUME`, the pause schedule, and a non-mutating task lookup as specified in design.md. Extend • Draft OpenSpec change nightshift-issue-11-attention-list-infra-pauses-past-their-a (specloop propose, round 1) • Merge pull request #30 from mattpolicastro/fix/drafter-human-tasks • Drafter: human-only checks belong in the design, never in tasks.md • Draft OpenSpec change nightshift-issue-25-factory-page-fold-finished-runs-away (specloop propose, round 2) • Merge pull request #20 from mattpolicastro/archive/factory-context • Archive factory-context into openspec/specs • Merge pull request #18 from mattpolicastro/fix/prepare-mutants • Evidence gate: measure mutants for manifests with prepare steps; never pass on nothing

View commits
GitHubpr merged

Spec: One unreadable run must not break `specloop status --json` for every repository

Merged PR in mattpolicastro/nightshift: "Spec: One unreadable run must not break `specloop status --json` for every repository"

View pull request
GitHubpr merged

Drafter: the implementer never sees the in-flight list, so name files to avoid

Merged PR in mattpolicastro/nightshift: "Drafter: the implementer never sees the in-flight list, so name files to avoid"

View pull request
GitHubpr merged

Spec: Run evidence-gate mutants in parallel

Merged PR in mattpolicastro/nightshift: "Spec: Run evidence-gate mutants in parallel"

View pull request
GitHubpr merged

Spec: Pass drafting ideas through a file, not argv

Merged PR in mattpolicastro/nightshift: "Spec: Pass drafting ideas through a file, not argv"

View pull request
GitHubpr merged

Implementer: run results go in the summary, never in a repository file

Merged PR in mattpolicastro/nightshift: "Implementer: run results go in the summary, never in a repository file"

View pull request
GitHubpr merged

Spec: Factory page: fold finished runs away

Merged PR in mattpolicastro/nightshift: "Spec: Factory page: fold finished runs away"

View pull request
Browse the archive