Repository navigation
Gap ledger: observation-inference (entrypoint label, plan limits) and scheduling-supervision (restored cron tasks) - #1158
Merged
seathatflowsinourveins merged 1 commit intoOct 16, 2026
Conversation
seathatflowsinourveins
force-pushed
the
claude/cc-native-practice-close-obs-sched-20261015
branch
3 times, most recently
from
October 15, 2026 19:16
35249b1 to
a0318bd
Compare
…-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
force-pushed
the
claude/cc-native-practice-close-obs-sched-20261015
branch
from
October 16, 2026 00:17
a0318bd to
5c016cd
Compare
seathatflowsinourveins
deleted the
claude/cc-native-practice-close-obs-sched-20261015
branch
October 16, 2026 01:19
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
observation-inference(slotusage-cost-monitoring: A3-0090 and B2-0005) andscheduling-supervision(slotscheduled-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.420452059lane:foundationslots.json,observation-inference.mdandscheduling-supervision.md;sha256_when_labeledchanges);adoption/templates/claude.settings.template.jsonandobservability/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.
OTEL_METRICS_INCLUDE_ENTRYPOINT: "true"goes into the template and the collector example, which the tests treat as a pair. The new disposition row isadopt-pending, with the template as carrier.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).otelcol-contrib 0.162.0 validate.collector.yamlchange 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.A5-0024 (a correction): CronCreate tasks come back on
--resumeor--continueand carry into a background session, so the resume and background paths now run CronList first and cancel stale tasks with CronDelete.3d36653dcreated task60ad686cat 01:35:01Z. Its background copy33888fe1(--resume … --bg) loggedscheduled_task_firefor that task at 07:36:00Z./looptasks only.SOTA sources
54351937…72374067…8cb643f4…17185d57…otelcol-contrib validate) and Claude Code 2.1.300.evidence/artifacts/d4-bg-trial-20261015/scheduled-task-carry.json, read from the two sessions' own transcripts.Evidence-class table
source_review+local_integrationotelcol-contrib validateon both profiles--bgcopynative_provenevidence/artifacts/d4-bg-trial-20261015/scheduled-task-carry.jsonsource_reviewLocal commands run
tests.test_upstream_surface_watchhas fourCachedArtifactTestsfailures, identical on base. #1155 fixes them.Digest custody fold, now squashed into
719f9586Digest custody, before any read: the scheduled-tasks notes cited a
/var/tmpfindings file and a digest prefix of it, and the usage notes and tests cited a/var/tmphost-diff path. The measurement is now kept in the repository atevidence/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_digestguards both rows.Squash (
719f9586), from the GPT read at 8c03cbetests/test_native_practice_ledger_obs_sched.pyheld 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.420452059as719f9586, 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 ingit log -p 420452059..719f9586, 0 times in the head tree, and 0 times in this description (counts only).ed5297ed8and8c03cbe5fmay stay reachable by SHA until GitHub's garbage collection. A purge is a support request that only the owner can make.tests.test_native_practice_snapshot_provenanceandtests.test_published_digest_privacyran 32 tests, OK (1 skipped); validate rc 0.Rebase (
a0318bd8) for landing719f9586(base420452059) onto main8053f14e7, asa0318bd8. The commit message is byte-identical, and the delta is resolution-only:claude-native-slot-manifest.json: main's copy, withsha256_when_labeledset to the mergedslots.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.pyandfinal_stack.py--checkall exit 0, so no generated report changed.a0318bd8: the commands above (the obs-sched module,tests.test_new_wsl_client_configandtests.test_native_practice_*) ran 350 tests, OK (3 skipped); validate rc 0.git log -p 8053f14e7..a0318bd8and 0 times in the head tree (counts only).Follow-ups
app.entrypointis 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@ae8c5075processor/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.docs/decisions/2026-10-09-claude-code-gap-resolution.md:62cites template line 27 forCLAUDE_CODE_SUBAGENT_MODEL, which is line 28 at this head.tests/test_native_practice_ledger_obs_sched.py:106-122checks 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@cbc944f4Lib/unittest/case.py:740,:1176;Doc/library/unittest.rst:995).collector.yamlkeep-list forapp.entrypointis 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.entrypointasclifor both tab and--bgsessions. If the metrics carry the same value, the label will not separate background sessions.slots.jsonandsha256_when_labeled, so a manifest rebase follows whichever lands first.Checklist
🤖 Generated with Claude Code