Skip to content

Third-party ports through the harness: Lightyear and SENTINEL IDE; external-fault experiment - #4194

Merged
squid-protocol merged 2 commits into
mainfrom
exp/thirdparty-ports-harness
Oct 3, 2026
Merged

squid-protocol merged 2 commits into
mainfrom
exp/thirdparty-ports-harness

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Runs two more public CardDemo Java ports through our equivalence harness, following the pattern of #4177 (IBM) and #4190 (Devin). Each is fetched at a pinned commit and never committed (neither repository has a licence), built as it ships, and judged by compare_run in three tiers: full, data and clock-masked. Results and root causes are in docs/research/third-party-ports-harness.md.

Results:

  • Lightyear CBACT04C: data equal in 4 of 6 JVM environments (52/52 accounts, 53/53 transactions, RC 0).
    • Arabic and Thai: a locale String.format defect (ZonedDecimal.java:47, InterestCalculationService.java:94).
    • Missing input: the job ends FAILED and publishes nothing, but the process exits 0.
  • SENTINEL IDE:
    • CBACT02C, CBACT03C, CBCUS01C: the job log differs (records logged as Java toString()).
    • CBACT04C abends U0999: XREF-ACCT-ID read at offset 16, where the copybook puts it at 25.
    • CBTRN02C rejects all 305 transactions: DALYTRAN-AMT read as 12 bytes instead of 11, shifting the card number. Its reject records are 361 bytes against 430.
    • Missing-input runs match the COBOL's ABEND U0999 in 10 of 11.
  • External-fault experiment. A missing input file stands in for the case's status-35 OPEN fault.
    • Devin's eval arms: 0 of 16 match. Arm A exits 12 with the path on stderr; arm B exits 1 with a stack trace. Neither prints the "ERROR OPENING" message or file status.

Not run, with reasons: SENTINEL CBTRN01C and CBTRN03C (they ship only reader interfaces), SENTINEL COBTUPDT (Db2), and Lightyear COACTVWC (not a CICS-shaped port).

Adapter: tests/tools/thirdparty_port.py and tests/tools/thirdparty/adapter/ (a program launcher plus a message-only logback config). Unit tests are in tests/cobol_mainframe/test_thirdparty_port.py.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ

squid-protocol and others added 2 commits October 2, 2026 22:57
…e equivalence harness; external faults

The pattern of #4177 / #4190: each port fetched at a pinned commit (no licence on
either repository: nothing of theirs committed), built as it ships (SENTINEL: its
program classes compiled as they are, the project's three non-compiling files are
none of them), run on our cases' inputs as text lines, judged by compare_run in
full / data / clock-masked tiers. --external-faults reproduces each case fault that
is an input OPEN failing with status 35 by running the port with that file absent,
for these ports and Devin's eval arms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
…nal-fault experiment (with Devin's eval arms)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
import argparse
import json
import re
import subprocess
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol
squid-protocol merged commit 41ead51 into main Oct 3, 2026
29 checks passed
@squid-protocol
squid-protocol deleted the exp/thirdparty-ports-harness branch October 3, 2026 03:10
squid-protocol added a commit that referenced this pull request Oct 3, 2026
…e runs, missing-file experiment; §9-§11 updated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZE6us7fUL6Hynk59rWLvZ
squid-protocol added a commit that referenced this pull request Oct 3, 2026
…canner, many translators (draft) (#4192)

* docs(research): COBOL->Java translation, observed -- one harness, one scanner, many translators (draft)

Blameless, post-hoc observational study across GitGalaxy's det and model ports,
IBM WCA4Z's LGACDB01 artifact, Devin workshop ports, SENTINEL IDE, lasserre,
Lightyear and an academic API-recovery study. Sections for SENTINEL I/O (#4191),
Lightyear/SENTINEL harness runs and the external-fault experiment are marked pending.

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

* docs(research): §10 translation strategies compared, and what each teaches

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

* docs(research): §4 SENTINEL I/O after #4193 -- agreement depends on the scanner recognising a translator's runtime vocabulary

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

* docs(research): §6/§8 filled from #4194 -- Lightyear and SENTINEL base runs, missing-file experiment; §9-§11 updated

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

* docs(research): CBACT01C in §6.1 and §7 (#4198) -- 9 Devin runs, structure against verdict; register A1/C10/L3/F3; counts 49/51

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

* docs(research): scenario count scoped to the 50-case sweep

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

* docs(research): SQL fault injection (#4200) -- instruments, Db2 coverage before/after, our own bugs fixed, register M2/X6/X10/X11

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants