Skip to content

det/CICS: EXEC CICS WEB family (SEND, RECEIVE, EXTRACT, READ/WRITE HTTPHEADER, PARSE URL, OPEN, CONVERSE, CLOSE) -- zECS needs HTTP (design first) #4767

Open

Description

@squid-protocol

Part of #4270 (burned estate zECS). After the ZECSPLT slice, four of zECS's five programs (ECS001, ZECS000, ZECS001, ZECS003) are held by the same family: EXEC CICS WEB .... zECS is a key/value cache served over HTTP, so these programs fundamentally need HTTP; they should not be half-modelled.

Measured on current main (det survey, zECS only; statements): WEB SEND 11, WEB CONVERSE 7, WEB OPEN 4, WEB CLOSE 4, WEB PARSE 4, WEB RECEIVE 2, WEB EXTRACT 1, WEB READ 1, WEB WRITE 1. Per program: ECS001 (OPEN/CONVERSE/CLOSE: HTTP client), ZECS000 and ZECS003 (PARSE + OPEN/CONVERSE/CLOSE + SEND), ZECS001 (all of them: the HTTP server side, RECEIVE/EXTRACT/READ HTTPHEADER/SEND/WRITE HTTPHEADER).

Design question to settle first (spec entry + decision before code): the harness has to STATE the HTTP peer. Server side: the inbound request (method, URL pieces, headers, body) as a fact of the task, and the response captured as an event. Client side (WEB OPEN/CONVERSE/CLOSE): a stated peer script (request -> response) per host/path, refused when a program talks to a peer the run did not state. IBM refs: WEB RECEIVE, WEB SEND, WEB EXTRACT, WEB READ/WRITE HTTPHEADER, WEB PARSE URL, WEB OPEN, WEB CONVERSE, WEB CLOSE. Needs a cics-crucible SPEC addition (new events, additive) and cases.

Programs made whole by this family alone: 0 of 4 (each also needs DOCUMENT, see the DOCUMENT issue, and others listed on the zECS umbrella). Do the two together.

Remaining slices (as of 2026-10-18)

Done so far: 6 merged PRs (#5378, #5214, #4877, #4898, #4938, #5026).

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

  1. changed the title [-]det/CICS: EXEC CICS WEB family (SEND, RECEIVE, EXTRACT, READ/WRITE HTTPHEADER, PARSE URL, OPEN, CONVERSE, CLOSE) -- zECS needs HTTP (design first):priority[/-] [+]det/CICS: EXEC CICS WEB family (SEND, RECEIVE, EXTRACT, READ/WRITE HTTPHEADER, PARSE URL, OPEN, CONVERSE, CLOSE) -- zECS needs HTTP (design first)[/+] on Oct 9, 2026
  2. squid-protocol commented on Oct 12, 2026

    @squid-protocol
    OwnerAuthor

    Sibling gaps from PR #4938 filed: #4940 (WEB READ FORMFIELD/QUERYPARM + browse forms), #4941 (WEB RETRIEVE); pointer lane, CALL ZUIDSTCK and the run-time file-name template for the ZECS000/ZECS003 cases are #4771.

  3. squid-protocol commented on Oct 14, 2026

    @squid-protocol
    OwnerAuthor

    Crucible-first backfill steps (cics-crucible, Sonnet ~20-30 min each)

    Owner 2026-10-14: these cases are written as churn backfill while gitgalaxy CI is busy. cics-crucible has no gating CI, so a PR there costs almost nothing on the shared runner pool. Each step is one case with expected logs hand-derived from cited IBM docs (cics-crucible AGENTS.md), gated by tools/validate.py, as one PR there. The tag and gitgalaxy pin bump are a separate step that needs owner OK.

    Owner decision first: C2-C5 need a stated HTTP peer model (SPEC change). Only C1 can start now.

    Release (shared): batch the merged case PRs, run gitgalaxy's cics_crucible runner against crucible main and review the baseline ledger. With owner OK, tag the next version after v0.5.0, bump PINNED_REF in tests/_cics_crucible_pin.py, and re-baseline: one ci-lane item when CI is calm.

  4. 38 remaining items

  5. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    #6457 merged: a partial slice of [c:5ddf2663] "(verify) Client-side crucible WEB events (peer host/query/headers in the SPEC). Check: a gt-web-client scenario runs on both runtimes with an equal log. Skip if the runner-driver slice covers it. (1"; left: the java-ported and java-facade cells of gt-web-client now pass with the crucible's equal log (det port committed); the bare java cell is the generated skeleton and fails for every case by design, and baseline.json is unchanged because the default runner reads ports/, not det-ports/ (same as pc-re (promoter-bot)

  6. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    #6472 merged: a partial slice of [c:5ddf2663] "(verify) Client-side crucible WEB events (peer host/query/headers in the SPEC). Check: a gt-web-client scenario runs on both runtimes with an equal log. Skip if the runner-driver slice covers it. (1"; left: GTWPARS det port (java-ported / java-facade of gt-web-parse-url); server cells wait on the CHARACTERSET / HTTPHEADER ruling; ZECS001 waits on #4771 (promoter-bot)

  7. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    #6479 merged: a partial slice of [c:5ddf2663] "(verify) Client-side crucible WEB events (peer host/query/headers in the SPEC). Check: a gt-web-client scenario runs on both runtimes with an equal log. Skip if the runner-driver slice covers it. (1"; left: GTWPARS det port done; server cells wait on the CHARACTERSET / HTTPHEADER ruling; ZECS001 waits on #4771 (promoter-bot)

  8. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    Churn run 4767-20261024T1516Z (host nyx) ended without a PR. No code: remaining work overlaps #6484 or belongs in cics-crucible. Proposed checklist lines 1-4 on #4767; line 1 ticks when #6484 merges.

  9. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    #6484 merged: a partial slice of [c:5ddf2663] "(verify) Client-side crucible WEB events (peer host/query/headers in the SPEC). Check: a gt-web-client scenario runs on both runtimes with an equal log. Skip if the runner-driver slice covers it. (1"; left: gt-web-client now passes java-ported/java-facade 2/2 each in the default run (client WEB events on the Java runtime); the "equal log on both runtimes" check was already covered by cobol-stub, nothing further known (promoter-bot)

  10. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    #6484 merged: a partial slice of [c:e120cf84] "ZECS001 and ZECS000/003 equivalence case, evidence record and ladder move. Waits on #4771 (pointer holes) and the DOCUMENT issue. Check: a case exists and evidence.py prove records a level. (1 PR)"; left: not worked on beyond this wiring (waits on #4771 / DOCUMENT) (promoter-bot)

  11. squid-protocol commented on Oct 24, 2026

    @squid-protocol
    OwnerAuthor

    Churn run 4767-20261024T1618Z (host nyx) ended without a PR. Item already done on main (#6487); no PR. Remaining ZECS lines blocked on owner CHARACTERSET/HOSTCODEPAGE/HTTPHEADER ruling.

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

    enhancementNew feature, sensor, or structural signatureera:3Era CICS TS 1-2, LE: MQ, EXCI, bridge, web (~1996-2005) (era_tags.py)legacy-modernizationCOBOL refractor, dead-code extraction, and JCL forgingneeds:corpusNeeds the large local source corpora (main box only)needs:crucibleNeeds the crucible repo checkoutsneeds:dockerNeeds Docker toolchain/oracle containerspriority: mediumscope:coreBlocks a burned-estate program's next evidence rung, or the 4th-estate one-shot trialtier:era-coreChurn tier 1: an era's core CICS/COBOL functionality (#5121 era table)

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions