Skip to content

Archive the last two completed OpenSpec changes - #2031

Merged
Aaronontheweb merged 2 commits into
devfrom
chore/openspec-archive-2
Aug 20, 2026
Merged

Archive the last two completed OpenSpec changes#2031
Aaronontheweb merged 2 commits into
devfrom
chore/openspec-archive-2

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Why

PR #2024 archived 16 completed changes and left two for a maintainer call. The
maintainer approved both for archive. This PR syncs their delta specs and
archives them.

No .cs file changes. openspec list shows 5 active changes.
openspec validate --all passes (75 items). dotnet slopwatch analyze reports
0 issues.

Archived changes

Each change moves to openspec/changes/archive/2026-08-19-<name>/.

Change Merged PRs
surface-reminder-schedule-failures #1886
redirect-shared-temp-to-session-scratch #1890, #1925, #1926, #1945, #1956

Spec syncs

redirect-shared-temp-to-session-scratch

The OpenSpec CLI applied both delta files:

  • openspec/specs/session-cwd/spec.md — adds "Session directory is the private
    shell scratch location" and modifies "Shell tool failure-path hint for cwd
    outside safe spaces".
  • openspec/specs/tool-approval-gates/spec.md — adds "Platform temporary scope
    receives a session-scratch correction", "Intentional platform-temp retry
    reaches ordinary approval", and "Parent and subagent scratch corrections are
    equivalent".

surface-reminder-schedule-failures

PR #2024 already rewrote "Failure handling and guardrails" in
openspec/specs/netclaw-scheduling/spec.md from the
reliable-one-shot-reminder-retry delta, with corrections against the merged
code. A programmatic apply would undo those corrections, so this delta was
merged by hand. The added content is:

  • An execution failure and a scheduling failure share one ConsecutiveFailures
    count.
  • A successful reschedule alone does not reset the count. The post-fire cron
    reschedule runs before that occurrence executes.
  • An unattended reschedule site — the post-fire reschedule and the startup
    reconcile restore loop — emits ReminderScheduleFailed at Warning severity.
    On the threshold it disables the reminder, emits ReminderAutoDisabled at
    Critical severity, and posts a channel notice.
  • No silent UTC fallback and no silent skip.
  • The set_reminder create path and update path return the error to the caller
    and emit no alert.

Three delta claims are stale against ReminderManagerActor on dev and were
dropped:

Task checkboxes

Task 4.3 of redirect-shared-temp-to-session-scratch is now ticked. It asked
for native Windows coverage of path and PowerShell behavior. The full
pr_validation suite ran green on Windows against current dev on 2026-08-20,
from branch feature/windows-validation-run. That branch is deleted now.

These boxes stay unticked, per the maintainer's acceptance:

  • surface-reminder-schedule-failures tasks 4.5 and 4.6 — parked test tasks.
    The maintainer accepts them as guaranteed by construction. No reset code was
    added at the reschedule sites, and the post-fire path calls the same
    ReportScheduleFailureAsync that the reconcile tests exercise.
  • surface-reminder-schedule-failures task 6.4 — ./evals/run-evals.sh needs
    eval-target credentials. The maintainer accepts this as an eval-credentials
    gap.
  • redirect-shared-temp-to-session-scratch task 4.4 — the same eval gate blocks
    the last item of this task.

Remaining active changes

  • memory-core-redesign (4/54)
  • reduce-fresh-session-approval-spam (69/75)
  • streaming-tool-call-execution (33/38)
  • subagent-explicit-model-selection (0/24)
  • memory-relevance-gate (0/14)

Apply the redirect-shared-temp-to-session-scratch delta to session-cwd and
tool-approval-gates. The OpenSpec CLI applied both files.

Merge the surface-reminder-schedule-failures delta into netclaw-scheduling by
hand. PR #2024 already corrected that requirement against the merged code, so a
programmatic apply would undo those corrections. Keep the corrected text and add
the scheduling-failure content:

- An execution failure and a scheduling failure share one ConsecutiveFailures
  count.
- A successful reschedule alone does not reset the count.
- An unattended reschedule site emits ReminderScheduleFailed at Warning severity,
  and ReminderAutoDisabled at Critical severity on the threshold.
- The set_reminder create path and update path return the error to the caller
  and emit no alert.

Drop three stale delta claims. The merged code disables a reminder. It does not
set a "paused" status and it does not write tasks.json. ReminderExecutionActor
has no ExecutionTimeoutSeconds constant, so the one-hour absolute limit stands.
Move each change to openspec/changes/archive/2026-08-19-<name>/. The code of
both changes is merged on dev.

- surface-reminder-schedule-failures: PR #1886.
- redirect-shared-temp-to-session-scratch: PRs #1890, #1925, #1926, #1945, and
  #1956.

Tick task 4.3 of redirect-shared-temp-to-session-scratch. The full pr_validation
suite ran green on Windows against current dev.

Leave the other boxes unticked. The maintainer accepts tasks 4.5 and 4.6 of
surface-reminder-schedule-failures as guaranteed by construction. The maintainer
accepts task 6.4 of that change and task 4.4 of
redirect-shared-temp-to-session-scratch as an eval-credentials gap.
@Aaronontheweb Aaronontheweb added documentation Improvements or additions to documentation cleanup Code quality improvements and tech debt reduction labels Aug 20, 2026
@Aaronontheweb
Aaronontheweb enabled auto-merge (squash) August 20, 2026 01:13
@Aaronontheweb
Aaronontheweb merged commit 7caf4db into dev Aug 20, 2026
31 of 32 checks passed
@Aaronontheweb
Aaronontheweb deleted the chore/openspec-archive-2 branch August 20, 2026 03:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup Code quality improvements and tech debt reduction documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant