Repository navigation
det: async CICS siblings — waiting FETCH/TIMEOUT scheduler, FREE CHILD, START CHANNEL, RUN CHANNEL symbol names #4950
Description
Sibling gap of #4884 (class: async CICS API — RUN/FETCH/FREE CHILD/channels). Found in the #4884 class sweep (PR #4948), which covers FETCH ANY/CHILD NOSUSPEND (always NOTFINISHED, enforced DIFFERS in compare_events) and RUN TRANSID CHANNEL.
| member | status | why not in #4948 |
|---|---|---|
| FETCH (waiting, no NOSUSPEND) and FETCH TIMEOUT | refused | needs a scheduler that completes children while the parent runs (harness redesign) |
| FETCH NOSUSPEND that IBM could answer NORMAL | DIFFERS (never equal) | same scheduler |
| FREE CHILD | refused | refusal message says "FREE", not "FREE CHILD" |
| START ... CHANNEL | refused | started task's channel copy is a separate mechanism |
| RUN ... CHANNEL with a symbol in the name | refused | IBM's allowed symbol set not yet sourced |
Acceptance: a child scheduler that lets IBM-possible completions happen (or a documented ASSUMED ordering per IBM's Async API docs) so FETCH can stop being DIFFERS; FREE CHILD modelled or refused with the right name; START CHANNEL modelled; RUN CHANNEL name set sourced from IBM. Register X18 updated; no proof loosened.
Siblings: #4884
Remaining slices (as of 2026-10-18)
Done so far: 5 merged PRs (#5376, #5283, #5302, #5067, #5013).
- (verify) Tick the stale checkbox for the
equivalence_cics._CICS_NAMEchannel/container name check (scenario_channel: refuse channel/container names outside IBM PUT CONTAINER charset (Part of #4950) #5283 appears to have done it viascenario_channel). Check: grep_cics_name_problemon main. (0-1 PR) (audit 2026-10-18: scenario_channel: refuse channel/container names outside IBM PUT CONTAINER charset (Part of #4950) #5283) - (verify) Crucible runner child schedule (language-crucible SPEC 6.2 CHILD event, runner wiring, a case). Cross-repo SPEC change; no crucible case needs it today, so nothing until one does. (frontier) (X18: record the crucible child-schedule verify as frontier (Part of #4950) #5615)
Done when: every acceptance item is modelled or refused by name (det/CICS: async child scheduler -- FETCH waits / TIMEOUT, FREE CHILD, START CHANNEL, RUN CHANNEL names per IBM (Part of #4950) #5013, det/CICS: container and channel names use IBM's PUT CONTAINER character set (Part of #4950) #5067, scenario_channel: refuse channel/container names outside IBM PUT CONTAINER charset (Part of #4950) #5283, cics-crucible runner: async/channel members refuse by name (Part of #4950) #5376 cover them); close once the owner agrees the remaining boxes are frontier.
Owner decision needed: close det: async CICS siblings — waiting FETCH/TIMEOUT scheduler, FREE CHILD, START CHANNEL, RUN CHANNEL symbol names #4950 as complete for the burned estates and move the three remaining boxes (crucible scheduler wiring, R1 child resource interleaving, ASYNCPNT) to a frontier issue? No burned program needs them.
Drafted 2026-10-18 by a Sonnet triage pass from this issue, its comments and the bodies of its "Part of" PRs; (verify) items were not checked against main. Tick boxes as slices merge; edit freely.
Activity
WIP #4950: scheduler tests on both runtimes, harness tests
WIP #4950: X18 register; oracle reads EXEC in literals / debugging li…
WIP #4950: ruff format
WIP #4950: crecust-rest tests follow the modelled FETCH / FREE CHILD
WIP #4950: X18 reached
det/CICS: async child scheduler -- FETCH waits / TIMEOUT, FREE CHILD,…
squid-protocol commentedon Oct 13, 2026
PR #5013 (merged) adds the async child scheduler. Remaining members of this class, from its sibling-gap list (checklist; tick as fixed):
childprogs) and don't hand a START CHANNEL copy to the started taskchannelNamerejects; move them to IBM's character setNot this mechanism: CBSA CRECUST stops at CEEDAYS reading 2 bytes past its picture field (L1/LE-model decision; see #4884 / #5003). #4952 (CRECUST case) should report that hole, never prove.
squid-protocol commentedon Oct 14, 2026
Sibling gap from #5067 (same class, not covered there), added to this checklist:
equivalence_cics._CICS_NAME) are not checked against IBM's PUT CONTAINER character set (A-Z a-z 0-9 $ @ # / % ? ! : | " = , ; > . - _; & < ¬ disputed per RUN TRANSID), as both runtimes now dodet/CICS: container and channel names use IBM's PUT CONTAINER charact…
tests/cics: the #4950 name-refusal stub run takes the Windows-aware e…
agy-authored, Sonnet-checked: CICS stub harness Windows portability (…
6 remaining items
X18: pin that no burned RUN child needs R1 or the runner's child sche…
cics-crucible: pin that no crucible case needs the child schedule (Pa…
X18: record the crucible child-schedule verify as frontier (Part of #…
squid-protocol commentedon Oct 20, 2026
Closing: both checklist items are done (#5283 covered the channel/container name check; the crucible child-schedule item is frontier and parked until a crucible case needs it, per #5615). Any new async CICS gap gets a fresh issue. (Owner decision 2026-10-20.)