Skip to content

CICS: WEB PARSE URL and WEB SEND (server), zECS 2/5 -> 4/5 whole (Part of #4767) - #4898

Merged
squid-protocol merged 5 commits into
mainfrom
feat/4767-web-parse-server
Oct 11, 2026
Merged

squid-protocol merged 5 commits into
mainfrom
feat/4767-web-parse-server

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #4767 (zECS, burned estate).

What

  • WEB PARSE URL (register X36): pure, IBM-defined split of URL/URLLENGTH into SCHEMENAME (upper, 16-byte padded), HOST/HOSTLENGTH, PORTNUMBER (80/443 default), PATH/PATHLENGTH, QUERYSTRING/QUERYSTRLEN; INVREQ 28 / 65. ASSUMED: what makes a URL "incorrect" (no scheme://, empty host, bad port). REFUSED by name: non-HTTP(S) scheme, user-info, fragment, IPv6, empty port / port 0, lowercase hex in an escape, LENGERR (IBM does not say what the length then holds), a PATH/QUERYSTRING asked for when the URL has none, two conditions at once, lengths past their area.
  • WEB SEND, the server's response (register X37): the inbound request is a STATED fact (http_request, like X35's http_peers; CicsTask.withHttpRequest / $GGCICS_WEBREQ), the response is recorded as a WEB-SEND event and compared. FROM/FROMLENGTH, MEDIATYPE, ACTION(IMMEDIATE), STATUSCODE (200 default), STATUSTEXT/STATUSLEN, SRVCONVERT/NOSRVCONVERT; INVREQ 11 / 72. REFUSED: ACTION EVENTUAL/omitted, a second send, malformed MEDIATYPE, SRVCONVERT on non-text, DOCTOKEN/CONTAINER/CHUNKING/CHARACTERSET/CLOSESTATUS ..., unstated request. WEB RECEIVE / EXTRACT / READ and WRITE HTTPHEADER stay refused whole (planned next; they read the same stated request).
  • Spec first (commands/web.py), both runtimes (CicsTask, ggcics.c: one step list answered alike), both translators (det/cics.py, equivalence_cics.py), harness request fact + event.

zECS survey (det, --no-census, compiled; main f42d10c -> this PR)

program before after
ECS001 105/105 whole 105/105 whole
ZECS000 171/173 173/173 whole, compiles
ZECS001 534/561 544/561 (does not compile: duplicate FILLER names, unrelated)
ZECS003 71/73 73/73 whole, compiles
ZECSPLT 27/27 whole 27/27 whole
Whole 2/5 -> 4/5; statements 908 -> 922 of 939.

Gates

pr_gates --fast 5/5; --ratchets 7/7 (none skipped); det_port check 104/104 unchanged (DetCics untouched). No cics-crucible case (its SPEC has no WEB events). No end-to-end equivalence proof of ZECS000/003 yet (needs a case with http_peers + http_request): unit-proven on both runtimes and both translators.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX

squid-protocol and others added 3 commits October 11, 2026 08:34
zECS: ZECS000 / ZECS001 / ZECS003 parse the partner data center's URL with it.
Spec entry first (commands/web.py), CicsTask.webParse and the stub's GGCWPRS answering
one step list alike, both translators, register X36 (INVREQ 28 / 65 as IBM lists;
what IBM leaves open ASSUMED or REFUSED by name).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
…4767)

ZECS003's one WEB SEND. The inbound HTTP request is a stated fact (http_request,
like X35's peers); the response is recorded as a WEB-SEND event and compared. Spec
entry first (commands/web.py), both translators, CicsTask and ggcics.c answering
one step list alike, the harness's request and event. IBM's INVREQ 11 / 72; what
IBM leaves open (EVENTUAL / second send, malformed MEDIATYPE, ...) refused by name.
Register X37.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 11, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 11, 2026 13:03
@squid-protocol
squid-protocol enabled auto-merge (squash) October 11, 2026 13:03
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #4898 @ 2a49b61: 1 failed check(s)

== full-suite part 2/3 (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/38140970517/job/114474590356
repro: python -m pytest -q tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_passes_its_ratchet tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_runs_part_3
failing tests: tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_passes_its_ratchet tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_runs_part_3
errors:
fail-on-cache-miss: false
tests/cultural_gauntlet/test_cultural_gauntlet.py:35: AssertionError
tests/cultural_gauntlet/test_cultural_gauntlet.py:446: AssertionError
FAILED tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_passes_its_ratchet - assert 1 == 0
FAILED tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_runs_part_3 - assert ['cics/CicsTa..., 16) >= 0;'] == [] ##[error]Process completed with exit code 1. log tail: SKIPPED [1] tests/cultural_gauntlet/test_cultural_gauntlet.py:478: collation_postgresql_en_us: its database is not on this machine SKIPPED [2] tests/cobol_mainframe/test_sql_unit_of_work.py:366: needs Docker (GnuCOBOL, Db2) and a JDK + Maven SKIPPED [1] tests/estate_crucible/test_estate_crucible_scorer.py:193: no estate-crucible checkout at /home/runner/work/gitgalaxy/estate-crucible (set ESTATE_CRUCIBLE_PATH) SKIPPED [1] tests/extraction/languages/test_dart.py:405: got empty parameter set for (payload) SKIPPED [1] tests/extraction/languages/test_dart.py:441: got empty parameter set for (payload) XFAIL tests/core_engine/test_aperture.py::test_aperture_embedded_hex_shield - Engine currently allows hex arrays if has_intent=True. Pending engine patch. XFAIL tests/extraction/languages/test_dart.py::test_dart_class_start_xfail_invalid[var query = '''\nclass FakeClass {\n''';] - String/comment lookalikes lack AST block shielding XFAIL tests/extraction/languages/test_dart.py::test_dart_func_start_xfail_invalid[/* \n void main() { \n */] - String/comment lookalikes lack AST block shielding XFAIL tests/extraction/languages/test_dart.py::test_dart_dependency_capture_xfail_invalid[// import 'package:test/test.dart';] - String/comment lookalikes lack AST block shielding XFAIL tests/extraction/languages/test_dart.py::test_dart_dependency_capture_xfail_invalid[/* \n import 'package:foo/foo.dart'; \n */] - String/comment lookalikes lack AST block shielding FAILED tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_passes_its_ratchet - assert 1 == 0 FAILED tests/cultural_gauntlet/test_cultural_gauntlet.py::test_the_sampled_plan_runs_part_3 - assert ['cics/CicsTa..., 16) >= 0;'] == []
Left contains 2 more items, first extra item: "cics/CicsTask.java:996: Character.isDigit / digit / getNumericValue (any script's digits, #3831): boolean lower = i + 2 < u.length() && Character.digit(u.charAt(i + 1), 16) >= 0"
Full diff:
- []
+ [
+ 'cics/CicsTask.java:996: Character.isDigit / digit / getNumericValue (any '
+ "script's digits, #3831): boolean lower = i + 2 < u.length() && " + 'Character.digit(u.charAt(i + 1), 16) >= 0',
+ 'cics/CicsTask.java:997: Character.isDigit / digit / getNumericValue (any '
+ "script's digits, #3831): && Character.digit(u.charAt(i + 2), 16) >= 0;",
+ ]
2 failed, 7474 passed, 68 skipped, 5 xfailed, 20 warnings in 495.18s (0:08:15)
##[error]Process completed with exit code 1.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/152251b7-9a85-48f2-8f3c-02559fe01fc1' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

@squid-protocol squid-protocol added the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

squid-protocol and others added 2 commits October 11, 2026 09:39
…ntlet, Part of #4767)

Character.digit accepts any script's digits (#3831); the lowercase-hex test is explicit now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
@squid-protocol squid-protocol removed the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 11, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

CI shepherd: the head of this PR (93052c0) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md labels Oct 11, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

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

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant