Skip to content

[hephaestus] TASK-0002 F6 per-method runtime budgets - #22

Merged
lr00rl merged 3 commits into
integrationfrom
feat/hephaestus-task0002-f6-budgets
Jul 26, 2026
Merged

[hephaestus] TASK-0002 F6 per-method runtime budgets#22
lr00rl merged 3 commits into
integrationfrom
feat/hephaestus-task0002-f6-budgets

Conversation

@lr00rl

@lr00rl lr00rl commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add signed manifest method budgets with additive nil-budget defaults, manifest validation, host maxima, and signing-payload parity coverage.
  • Enforce per-invocation timeout/stdout/stderr/host-call budgets in the system runner, including stdout hard failures, host_calls=0 isolation, warn-once default budgets, and stderr truncation warnings on success.
  • Add additive signed min_server as agreed for TASK-0010 Decision A so the F6 re-sign wave can carry plugin->server compatibility.

Verification

  • go test ./... && go vet ./...
  • go test -race -cover ./internal/plugin ./internal/server (plugin 77.7%, server 69.8%)

Notes

  • Budgets remain additive: absent budget uses old defaults and warns once per method.
  • Strict must-declare enforcement remains deferred to TASK-0006/TASK-0010 after the re-sign wave.
  • Production manifest signing/re-signing remains zeus/operator-owned.

lr00rl added 2 commits July 26, 2026 05:44
Per-method budgets are now a signed manifest surface and resolve additively: old manifests without budget keep the old defaults, while new method budgets can raise stdout within host maxima or clamp host calls to zero for engine-isolated work.

Constraint: Operator widened Sub-Store v1 scope and made F6 a blocking prerequisite before Phase 2 conversion/pipeline work
Constraint: Existing signed manifests must keep loading until the re-sign wave lands
Rejected: Raise the global SystemRunner output constants | would silently widen every plugin instead of binding cost to signed method contracts
Rejected: Fail successful calls on stderr overflow | Zeus required success plus explicit truncation marker and host log
Confidence: high
Scope-risk: moderate
Directive: Keep absent budget additive until TASK-0006/TASK-0010 flips strict manifest enforcement after re-signing
Tested: go test ./... && go vet ./...
Tested: go test -race -cover ./internal/plugin ./internal/server (plugin 77.6%, server 69.8%)
Not-tested: Production re-signing queue and plugin manifest content updates; zeus/operator-owned
Additive min_server gives the release train a signed plugin-to-server compatibility source while budgets already require a schema and re-sign wave.

Constraint: Zeus TASK-0010 proposal requested hephaestus decision on G1 home before the train manifest format settles
Rejected: Keep min_server index-only | leaves compatibility unsigned while this F6 wave is already changing signed manifest schema
Confidence: high
Scope-risk: narrow
Directive: Keep min_server optional until the operator re-sign wave and later train strictness gate
Tested: go test ./... && go vet ./...
Tested: go test -race -cover ./internal/plugin ./internal/server (plugin 77.7%, server 69.8%)
Not-tested: Plugin-index train.json mirroring and production manifest re-signing; zeus/operator-owned
@lr00rl

lr00rl commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

[ack] — zeus schema/security review, Olympus TASK-0002 F6 (2026-07-26)

All three required adjustments from my 12:18Z ack are implemented and PINNED: additive rollout (absent budget → old defaults + warn-once; no signed manifest rejected), signing-payload parity for BOTH new fields (TestBudgetOmittedKeepsSigningPayloadByteIdentical, TestMinServerOmittedKeepsSigningPayloadByteIdentical), and TestSystemRunnerSurfacesStderrTruncationOnSuccess with the marker+log implementation exactly as specified. Budget spec is complete-or-absent via pointer + all-fields-required unmarshal, so host_calls:0 is intentional; host maxima match the approved numbers; min_server is v2-gated and validated additively (format hardening can ride the strict flip — non-blocking note). Independently verified at 5f1ab58: internal/plugin -race ok @ 77.7%, vet/gofmt clean.

Merge-ready into integration — owner executes per rules/01 §5. Strict must-declare stays deferred to TASK-0006/0010 per the staged order; signing of budget-carrying manifests remains the operator's queue.

@lr00rl
lr00rl merged commit 97082b2 into integration Jul 26, 2026
1 check passed
@lr00rl
lr00rl deleted the feat/hephaestus-task0002-f6-budgets branch July 26, 2026 16:49
@lr00rl
lr00rl restored the feat/hephaestus-task0002-f6-budgets branch July 26, 2026 16:49
@lr00rl

lr00rl commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

Landed into integration by manual Olympus merge commit 97082b2 after Zeus [ack] and green verification. Keeping the feature branch for record per rules/01.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant