Skip to content

Gap ledger: observation-inference (entrypoint label, plan limits) and scheduling-supervision (restored cron tasks) - #1158

Merged
seathatflowsinourveins merged 1 commit into
mainfrom
claude/cc-native-practice-close-obs-sched-20261015
Oct 16, 2026
Merged

seathatflowsinourveins merged 1 commit into
mainfrom
claude/cc-native-practice-close-obs-sched-20261015

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes, in one or two sentences: This PR closes the three ADOPT rows of the Claude Code practice gap ledger on two small layer pages: observation-inference (slot usage-cost-monitoring: A3-0090 and B2-0005) and scheduling-supervision (slot scheduled-tasks: A5-0024). The command center dispatched the ledger on 2026-10-15, and each row was confirmed by a second-family gpt-6-astra re-check. The plan asks for one PR per layer page; these two are small, so they share one commit.
  • Base commit: 420452059
  • Lane: lane:foundation
  • Owned paths touched:
    • the practice skill's slots.json, observation-inference.md and scheduling-supervision.md;
    • the slot manifest (only sha256_when_labeled changes);
    • adoption/templates/claude.settings.template.json and observability/collector/claude-settings.json.example;
    • catalogs/foundation/upstream-surface-dispositions.json;
    • docs/decisions/2026-10-02-new-wsl-client-configuration.md (a dated addendum: one more wired piece, 403 to 404);
    • tests/test_native_practice_ledger_obs_sched.py (new);
    • manifests/evidence.json.

A3-0090: label every Claude Code metric with the session entrypoint.

  • Change: OTEL_METRICS_INCLUDE_ENTRYPOINT: "true" goes into the template and the collector example, which the tests treat as a pair. The new disposition row is adopt-pending, with the template as carrier.
  • Inert on 2604 today: the collector's privacy filter keeps a fixed list of metric labels without app.entrypoint. That holds in the repository profile (observability/collector/collector.yaml:412,425) and in the live profile, which is byte-identical to the install plan's copy (:415,428).
  • Host diff (the command center's act): proposed to the command center, with the collector keep-list step first, then the settings key, a Prometheus check and the inverse. Both the patched and the unpatched profile pass otelcol-contrib 0.162.0 validate.
  • Follow-up: the repository-side collector.yaml change belongs to the observability lane, because that label list is a privacy control.

B2-0005: a record only. claude -p, Agent SDK and third-party harness usage under a plan still draws on the plan's limits; the programmatic credit announced for 2026-06-15 is paused.

  • The same page now also carries a 2026-10-07 update: Max and Team plans get monthly API credits. They cover a linked Console organization's API-key usage only and leave plan limits unchanged (support article 17154008).

A5-0024 (a correction): CronCreate tasks come back on --resume or --continue and carry into a background session, so the resume and background paths now run CronList first and cancel stale tasks with CronDelete.

  • Measured on this host, 2026-10-15: tab session 3d36653d created task 60ad686c at 01:35:01Z. Its background copy 33888fe1 (--resume … --bg) logged scheduled_task_fire for that task at 07:36:00Z.
  • Untested: backgrounding from inside a session is documented for /loop tasks only.

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
The entrypoint label switch and its collector drop source_review + local_integration the docs lines; otelcol-contrib validate on both profiles
Session-scoped cron tasks carry into a --bg copy native_proven evidence/artifacts/d4-bg-trial-20261015/scheduled-task-carry.json
Unattended usage draws on plan limits source_review the support articles

Local commands run

$ python3 -m unittest tests.test_native_practice_ledger_obs_sched   # base 420452059
FAILED (6 of 6), e.g. AssertionError: None != 'true'
$ python3 -m unittest tests.test_native_practice_ledger_obs_sched tests.test_new_wsl_client_config tests.test_native_practice_*
OK
$ python3 scripts/validate.py
rc 0; {"components": 71, "hashed_files": 12056, "profiles": 4, "receipts": 240, "status": "passed"}

tests.test_upstream_surface_watch has four CachedArtifactTests failures, identical on base. #1155 fixes them.

Digest custody fold, now squashed into 719f9586

Digest custody, before any read: the scheduled-tasks notes cited a /var/tmp findings file and a digest prefix of it, and the usage notes and tests cited a /var/tmp host-diff path. The measurement is now kept in the repository at evidence/artifacts/d4-bg-trial-20261015/scheduled-task-carry.json, and the host steps are named as proposed to the command center. test_the_rows_cite_no_scratch_path_or_unpublished_digest guards both rows.

Squash (719f9586), from the GPT read at 8c03cbe

  • P1, digest custody: the custody regression in tests/test_native_practice_ledger_obs_sched.py held a real prefix of an unpublished digest as a literal. It now checks both rows for the scratch roots and the private findings files' name, and holds no private value. A synthetic negative control plants a scratch reference with a synthetic digest, and the check catches it.
  • One commit on the same base: the branch is squashed onto 420452059 as 719f9586, following the custody precedent of Split adaptive paper sells within the durable order envelope #1091, ci: rebalance native module shards from measured Actions timings #1148 and Build frozen Jev trading case sets and paired scorer #1150. No commit in the branch keeps the prefix. The 7- and 8-character prefixes occur 0 times in git log -p 420452059..719f9586, 0 times in the head tree, and 0 times in this description (counts only).
  • Replaced commits: ed5297ed8 and 8c03cbe5f may stay reachable by SHA until GitHub's garbage collection. A purge is a support request that only the owner can make.
  • Results: the module plus tests.test_native_practice_snapshot_provenance and tests.test_published_digest_privacy ran 32 tests, OK (1 skipped); validate rc 0.

Rebase (a0318bd8) for landing

  • On the command center's landing cue, the commit was rebased once from 719f9586 (base 420452059) onto main 8053f14e7, as a0318bd8. The commit message is byte-identical, and the delta is resolution-only:
    • claude-native-slot-manifest.json: main's copy, with sha256_when_labeled set to the merged slots.json.
    • manifests/evidence.json: main's copy, with the branch's 10 changed files re-registered (both new rows kept).
    • component_matrix.py, new_host_grand_list.py and final_stack.py --check all exit 0, so no generated report changed.
  • Results at a0318bd8: the commands above (the obs-sched module, tests.test_new_wsl_client_config and tests.test_native_practice_*) ran 350 tests, OK (3 skipped); validate rc 0.
  • The 7- and 8-character digest prefixes occur 0 times in git log -p 8053f14e7..a0318bd8 and 0 times in the head tree (counts only).

Follow-ups

  • From the GPT read at 8c03cbe (P3s, left to the command center's ruling):
    • app.entrypoint is still dropped at the collector boundary (observability/collector/collector.yaml:412, :425; new-wsl-install-plan-20261002/config/otel.yaml:415, :428). The pinned collector filters attributes before grouping (open-telemetry/opentelemetry-collector-contrib@ae8c5075 processor/transformprocessor/internal/metrics/func_aggregate_on_attributes_metrics.go:51-56). The observability change must update both lists in both profiles and verify the exported series.
    • The resume route lists and cancels stale tasks, but the ordering is unmeasured: restore, stale-task cancellation, expired one-shots, recurring expiry and background recovery are not exercised.
    • docs/decisions/2026-10-09-claude-code-gap-resolution.md:62 cites template line 27 for CLAUDE_CODE_SUBAGENT_MODEL, which is line 28 at this head.
  • From the GPT fix1 read at 719f958 (ACK, 0 blockers; the three P3s above repeat, and one is new):
    • The synthetic negative control in tests/test_native_practice_ledger_obs_sched.py:106-122 checks its own marker expression and never calls the row assertion, so it would still pass if that check were a no-op. The guard itself rejects the planted reference, so this is test hardening. Fix: run the same guard callable in the positive and negative cases, and cite the supported unittest API in the correction record (python/cpython@cbc944f4 Lib/unittest/case.py:740, :1176; Doc/library/unittest.rst:995).
  • The repository collector.yaml keep-list for app.entrypoint is the observability lane's change; this PR's test fails as soon as that list changes, so the row is updated in the same commit.
  • Transcripts record entrypoint as cli for both tab and --bg sessions. If the metrics carry the same value, the label will not separate background sessions.
  • The open practice-row PRs all rewrite slots.json and sha256_when_labeled, so a manifest rebase follows whichever lands first.

Checklist

  • No GitHub Actions changed.
  • No workflows changed.
  • No secrets are printed, logged or committed.
  • No new paid hosting, subscription or billing surface.
  • Peer-owned untracked files and worktrees were preserved.

🤖 Generated with Claude Code

@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 15, 2026
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/cc-native-practice-close-obs-sched-20261015 branch 3 times, most recently from 35249b1 to a0318bd Compare October 15, 2026 19:16
…-0005) and scheduling-supervision (A5-0024)

From the practice gap ledger of 2026-10-15 (rows A3-0090, B2-0005 and A5-0024, each ruled ADOPT and re-checked
AGREE by the co-op's Codex lane). The plan asks for one PR per layer page; the coordinator combined these two small
pages in one commit. This commit is the branch squashed onto the same base under the digest-custody precedent of
#1091, #1148 and #1150: no commit in the branch keeps a private digest prefix.

observation-inference, slot usage-cost-monitoring:
- A3-0090: the template and the collector example set OTEL_METRICS_INCLUDE_ENTRYPOINT=true (off by default;
  env-vars.md:510, monitoring-usage.md:156 and :584 at client 2.1.300), so metrics carry app.entrypoint to split
  interactive, -p and SDK runs. The row records that the collector's transform/privacy metric allowlists (the
  repository profile, and the 2604 profile the live collector runs) do not keep app.entrypoint yet, so the collector
  sums the label away until they do; the host steps go to the command center as a host diff, named without a path.
  The dispositions catalog records the switch as adopt-pending on the template, and the new-WSL client configuration
  record gains a dated projection (404 pieces, one more wired through the otel-collector-contrib slot).
- B2-0005: signed in with the plan, claude -p, Agent SDK and third-party app runs draw the plan's usage limits
  (support article 15036540, its 2026-06-15 and 2026-10-07 updates); the Max and Team monthly API credits cover a
  linked Console organization's API-key usage only and leave the plan's limits unchanged (support article 17154008).

scheduling-supervision, slot scheduled-tasks:
- A5-0024, a correction: --resume and --continue restore CronCreate tasks that have not expired or passed, and a
  backgrounded session keeps them firing (scheduled-tasks.md:11, :228, :230). Measured on this host on 2026-10-15
  and retained in evidence/artifacts/d4-bg-trial-20261015/scheduled-task-carry.json: a one-shot CronCreate task
  fired at 07:36:00Z inside the copy that claude --resume <id> --bg started. The route now has resume and background
  paths run CronList first and cancel stale tasks with CronDelete (scheduled-tasks.md:159-160).

Digest custody (command center, 2026-10-15; the GPT read at 8c03cbe, P1): repository text cites committed files and
public sources only. test_the_rows_cite_no_scratch_path_or_unpublished_digest checks both rows for the scratch roots
and the private findings files' name and holds no private value; a synthetic negative control plants a scratch
reference with a synthetic digest and is caught. The slot manifest's sha256_when_labeled follows slots.json.

tests/test_native_practice_ledger_obs_sched.py: 6 of 6 tests failed before on the base (38 subtests); 7 pass now;
native-practice modules 106 OK; the mechanism modules pass except four CachedArtifactTests in
test_upstream_surface_watch, which fail the same way on the base; validate rc 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/cc-native-practice-close-obs-sched-20261015 branch from a0318bd to 5c016cd Compare October 16, 2026 00:17
@seathatflowsinourveins
seathatflowsinourveins merged commit 7dcbe9a into main Oct 16, 2026
32 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the claude/cc-native-practice-close-obs-sched-20261015 branch October 16, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant