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
Original file line number Diff line number Diff line change
Expand Up @@ -208,14 +208,10 @@ export interface RunStep {
* Input/InputAttributes are this step's recorded INPUT (docs/adr/0031
* item 3): the immediately-preceding EXECUTED step's own recorded
* Payload/Attributes, or the run's own seeded starting values for
* the first executed step. Previously undiscoverable at all -- only
* a step's OUTPUT was ever surfaced. Input deliberately has NO
* omitempty, matching Output below -- goal 0021 gap 3, caught live:
* a run started with no payload seeded a genuinely empty first-step
* Input, and omitempty dropped the JSON key entirely over MCP,
* reading as "the field doesn't exist" rather than "it's empty" --
* indistinguishable from a real mapping bug. An always-present key
* (empty string when there's truly nothing) is unambiguous.
* the first executed step. No omitempty on Input, matching Output
* below (goal 0021 gap 3): omitempty on a genuinely-empty first
* step dropped the JSON key entirely over MCP, indistinguishable
* from a real mapping bug.
*/
"input": string;
"inputAttributes"?: { [_ in string]?: any } | null;
Expand Down
6 changes: 5 additions & 1 deletion internal/services/mcpsvc/millmcpservice_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@ func TestMillMCPService_RealClientRoundTrip(t *testing.T) {
t.Fatalf("Start: %v", err)
}
defer func() {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
// 2s previously flaked on shared CI runners under load
// ("Shutdown: context deadline exceeded") -- confirmed a runner-
// timing flake, not a real bug, by rerunning the exact failing
// job to green (goal 0021 Phase-1-remainder PR #20, 2026-08-12).
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
if err := svc.Shutdown(ctx); err != nil {
t.Errorf("Shutdown: %v", err)
Expand Down
Loading