feat(rate-of-closure): matched PyQt6/React capability optimization workspaces - #4294
Merged
dieterolson merged 9 commits intoAug 9, 2026
Conversation
…n workspaces Expose the qualified Waterloo/Penner capability optimizer as a primary Shot Optimizer module in both clients: strict cross-runtime capability-optimization-workflow/v1 authoring and persistence, off-UI-thread execution with truthful progress and cooperative cancellation, complete scalar-ensemble/v1 cohort retention, ranked alternatives, stage-qualified scatter axes, bounded raw-row paging, spreadsheet-safe CSV, and stable JSON. The React panel is lazy-loaded so the main Vite chunk stays under the 500 kB warning threshold, and saved v1 layouts reveal newly registered modules. Handoff documents are updated in this implementation commit per fleet policy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t reveal Add PyQt workflow/worker/GUI suites and React workflow, worker-client, run, panel, and results tests for the Shot Optimizer slice; extend primary-navigation coverage so saved layouts reveal newly registered modules and the new tab registers exactly once in both clients. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… gates Add the SPEC 1.14.6 change-log row, document the end-user workflow in the capability optimization spec, and update the campaign handoff with the recovered slice and its verified gate evidence. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
No material source change; handoff pointer update only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…cess The dict-splat construction of CapabilityWorkflowInputs failed the hosted delta-mypy gate because **dict[str, float] cannot be proven against the integer fields. Build the snapshot with explicit typed keyword arguments instead; behavior is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Handoff update for implementation commit 101020b per fleet policy; no source change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The prior note wrongly framed the 3.10 StrEnum ImportError as a stack-wide defect to fix in source. requires-python is >=3.11 and only quality-gate and tests (3.11) are required checks, so the 3.10 lane is a stale-matrix artifact. No source change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The observation contract has only complete/no_impact/failed members, so a horizon nonconvergence is normalized into failed. Reporting a bare "failed N" reads as numerical breakage when the retained reason says the flight simply did not reach the ground inside the configured horizon. Both clients now append the retained reason codes with counts, which is data the adapter already carries per row. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Brings in the evaluator branch descending-launch and delta-mypy repairs. Resolves the two documentation conflicts by keeping both slices: SPEC.md retains the 1.14.6 workspace row above the amended 1.14.5 evaluator row at header version 1.14.6, and the tool handoff keeps the workspace completion record ahead of the evaluator repair entry. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
dieterolson
merged commit Aug 9, 2026
43e13bb
into
feat/4197-capability-flight-evaluator
12 checks passed
d-sorgcodexagent Bot
pushed a commit
that referenced
this pull request
Aug 9, 2026
The per-slice stacked-branch cautions described the stack while it was open and now read as active constraints, so state plainly that #4283, #4289, and #4294 are merged onto this branch, how they were folded, what was verified here (1426 Python, 624 React), and that the incomplete CI matrix reflects 25 of 28 org runners being offline rather than failures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
Third and final implementation slice of the epic #4197 capability stack: the end-user Shot Optimizer workspaces in PyQt6 and React, stacked on the flight evaluator (#4289), which is stacked on the observation/cancellation contract (#4283).
capability-optimization-workflow/v1authoring, save/load, and validation (single club, three launch parameters, sourced fixed spin, target, objective, budgets, deterministic seed).scalar-ensemble/v1with complete/no-impact/failed cohorts; ranked alternatives; stage-qualified selectable scatter axes; paired-finite/unavailable accounting; bounded 25-row raw paging; spreadsheet-safe lossless CSV and stable JSON export.Recovery history
This slice was left uncommitted by an interrupted session whose handoff claimed green gates. Those claims were re-verified and did not hold; the following were repaired before and after publication:
ab650a346call-arg: positional-after-star bounds unpacking → typed spec factoriesab650a346vi.fnmock →vi.fn<CapabilityRunner>396cfa4c0Suspenseab650a346**dict[str, float]splat into integer fields → explicit typed kwargs101020b5bVerified gates (local, head
dfdf31546)tests/rate_of_closure+ 615src/shared/python/swing_sim), re-run after the final source change.tsc --noEmitclean; zero-warning ESLint; 187-module Vite build, main chunk 474.32 kB with no size warning.ruff format --check: clean on all changed Python files.--ignore-missing-imports --follow-imports=skip): clean on all 10 changed src files.c280407d4: 0 violations;git diff --checkclean.quality-gate: pass on this head.Stack
feat/4199-wind-workflow→ observer #4283 → evaluator #4289 → this PR. Do not retarget, rebase, or merge ahead of parents. Epic #4197 remains open for protected CI, ordered review/merge, and downstream parity.🤖 Generated with Claude Code