Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 57 additions & 7 deletions docs/information/executor-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,22 @@
"schema": "wellmanifest.docs/document/v1",
"id": "executor-metrics",
"kind": "information",
"version": 1,
"version": 2,
"title": "Optional executor metrics and incomplete file reads",
"status": "implemented",
"owner": "semcod/planfile",
"created": "2026-09-09",
"updated": "2026-09-09",
"updated": "2026-09-10",
"review_after": "2026-10-09",
"source_revision": "59dcc7a65f04de5cb31f4caa99df157697875058",
"source_revision": "51b0c94f01d78a0d82ff92b998114e5ae6b9fffa",
"affected_repositories": ["semcod/planfile"],
"evidence": [
"https://github.com/semcod/planfile/blob/59dcc7a65f04de5cb31f4caa99df157697875058/planfile/executor_standalone.py",
"https://github.com/subactor/doctor-agent/issues/377",
"https://github.com/subactor/doctor-agent/issues/378",
"repo://semcod/planfile/tests/test_executor_metrics.py"
"repo://semcod/planfile/tests/test_executor_metrics.py",
"https://github.com/semcod/planfile/pull/62",
"receipt:planfile:PLF-13798:metrics-deployment"
]
}
---
Expand All @@ -27,7 +29,7 @@
## Purpose

Make a missing portion of optional project context visible to operators and LLM
consumers. At the baseline source revision above, the standalone executor caught
consumers. At baseline `59dcc7a65f04de5cb31f4caa99df157697875058`, the standalone executor caught
all exceptions during project metrics collection without recording a diagnostic.
Doctor detected both the per-file catch and the outer fallback.

Expand All @@ -36,8 +38,8 @@ Doctor detected both the per-file catch and the outer fallback.

This document describes `StrategyExecutor._get_project_metrics` and the prompt
it supplies to the standalone executor. The source revision identifies the
investigated baseline; the implementation and regression tests are versioned
with this document. Publication and runtime deployment require separate receipts.
independently merged implementation. Version 1 remains available at that immutable
revision. Publication and runtime deployment have separate observed evidence below.

<!-- docs:section evidence -->
## Evidence
Expand Down Expand Up @@ -88,3 +90,51 @@ projection described in the [published Doctor integration report](https://github

Use these codes when diagnosing incomplete executor context. Resolve any follow-up
about complexity accuracy or filesystem enumeration as a separately scoped change.

## Version 2 — deployed acceptance, 2026-09-10 Europe/Warsaw

The independent Validator merged PR #62 at `51b0c94f01d78a0d82ff92b998114e5ae6b9fffa`.
The required `ci-loop` and `notify` checks passed, as did the locked Python 3.10
and 3.13 test jobs. Deployment was an operator action under session authorization;
these receipts do not claim autonomous repair admission.

The active `subactor-platform-planfile-1` now uses image
`sha256:d96361f68299e4af1838a2a8d2020a82cc1c5afc5efbc86b1dd59cfdeb0c4a8a`.
This image replaces only `executor_standalone.py` in the prior runtime image
`sha256:68ada5703c25c6b3847fa7e0807e94e64ad17570a3594cb0059aa9d701803faa`;
it is not a claim that the complete installed package equals the merged source.
The installed module SHA-256 is
`04d61f336cd2792ba13dfb169bfa7bd4fe7486ebac45da04e71f398efce8f952`.

Observed acceptance:

- Six regression tests from the protected source passed inside the candidate
image without network access or production data volumes.
- The replacement became healthy in 11.2 seconds. Live configuration, host
settings, mount bindings and network membership matched the prior container.
- The installed module returned partial metrics for invalid encoding, marked
the LLM prompt as incomplete, reported filesystem failures without exception
payloads, and propagated unexpected programming errors from the collector.
- HTTP `/health` returned `ok` in 0.010 seconds. An existing deployment ticket
read returned in 0.111 seconds. These are individual observations, not an SLA.
- The published Doctor analyzer from revision
`775935b40dbe6020f3a0aa10fe81d6cfca6ac954` found zero matching issues in the
installed module, compared with two in the previous source.

The previous container is retained, stopped, as
`subactor-platform-planfile-1-rollback-metrics-51b0c94`. No data volume was replaced.
Private recovery storage contains the exact previous Docker configuration and
the deployment plan. The durable image override is
`~/.local/share/subactor/planfile/releases/metrics-51b0c94f01d78a0d82ff92b998114e5ae6b9fffa/compose.image.json`.
Use that override when intentionally recreating this release through Compose.
The previous container's labels reference a missing temporary Compose override;
those historical labels were preserved, not treated as a complete restoration
recipe. Recovery uses the retained container and privately captured live binding.

The dirty primary source checkout was preserved. Consequently, Search may still
observe the older checkout revision even though the approved module is deployed;
the runtime recheck above is a separate observation. Archive data, credentials,
raw logs and full configuration are excluded from this document.

The bounded acceptance receipt stored with PLF-13798 has SHA-256
`da8ae3972a729ec9ca2aedc5684f539b9586d77439fa1039cce35edc1ce9f794`.
16 changes: 16 additions & 0 deletions project/ticket-063/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# ticket-063 — Executor metrics deployment acceptance

Intent: deploy the independently merged module from PR #62 into the existing
Planfile service image, preserve live configuration and volumes, retain a stopped
rollback container, and record independent runtime acceptance.

Authorization: the user requested continuation of the remaining deployment.
Central execution record: PLF-13798. Source merge:
`51b0c94f01d78a0d82ff92b998114e5ae6b9fffa`.

Acceptance: six published regression tests in the candidate image; exact installed
module digest; health and ticket API readback; partial metrics and LLM prompt
behavior; published Doctor analyzer reports no matching findings in the installed
module. Raw configuration and logs remain private.

Canonical result: [Executor metrics diagnostics, version 2](../../docs/information/executor-metrics.md).
13 changes: 13 additions & 0 deletions project/ticket-063/intent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"schema": "new-project.intent/v3",
"ticket": "ticket-063",
"summary": "Deploy approved executor metrics module and publish observed acceptance evidence",
"workstream": "executor-metrics-deployment",
"classification": {"kind": "SERVICE", "priority": "P2", "origin": "health"},
"allowedPaths": ["docs/information/executor-metrics.md", "project/ticket-063/**"],
"forbiddenPaths": [".env", "secrets/**", ".github/**"],
"stacks": [],
"dependsOn": ["ticket-061"],
"conflictsWith": [],
"integrationTicket": null
}
Loading