Skip to content

service-automation: extend the StepLogEntry ↔ ExecutionStepLog type pin to warnings / droppedFields and fix its stale comment #33380

Open

Description

@objectstack-fleet

domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

Follow-up of #33020 (PR #33368, Clause-②: yes (widening): ExecutionStepLogSchema gains warnings and droppedFields). Contract review 6881957920, finding N3 (and N2, folded here).

Stale once #33368 merges: packages/services/service-automation/src/builtin/region-index-keys.test.ts:56-60, the comment "The engine's interface legitimately carries engine-local fields the contract does not (nodeLabel, warnings)": warnings is a contract member after #33368. The type-level pin covers only the region keys (parentNodeId | iteration | branch | regionKind | retryAttempt), so drift between the engine's StepLogEntry and the spec's ExecutionStepLog on warnings / droppedFields is caught only by #33368's runtime parse pin, not at compile time.

TO:

  • add warnings and droppedFields to the pinned keys (invariant Eq, same as the region keys) and correct the comment (nodeLabel stays engine-local);
  • N2: the stepAdvisoriesOf docblock in packages/services/service-automation/src/dag-traversal.ts says step and run answer "can never disagree", but a host event with fields: [] parses under DroppedFieldsEventSchema and stays on the step while foldDropEvents drops it (run-dropped-fields.ts:68). Either drop empty events in stepAdvisoriesOf too, or narrow the sentence. No in-tree producer emits one.

Test and comment only (plus one docblock or one filter line): no published surface moves. Waits for #33368 to merge.

class: b · type: Test · Grade: p3 (no runtime effect; a type pin and two sentences) · domain: server

Activity

  1. added
    toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
    pm:queueReady for the PM dispatch loop
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Nov 14, 2026
  2. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: +lease:A5 · 2026-11-14T18:52Z

    ⛔ Not a claim; claim, grade and state unchanged.

    Area A5 under the area-lease pilot (#33059, table on #28677). The label replaces the text Area: line now that lease: labels exist. Decisions go area → domain:server#5.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:serverDomain lane — seat card indexed by label:pm:seatlease:A5pm:queueReady for the PM dispatch looppriority:p3toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions