Skip to content

fix(track-a): correct XRes client-id length after physical discriminator - #455

Merged
blakinio merged 18 commits into
mainfrom
diag/OTC-20260817-track-a-xres-raw-pid-identity-physical-authorized-v1
Aug 17, 2026
Merged

fix(track-a): correct XRes client-id length after physical discriminator#455
blakinio merged 18 commits into
mainfrom
diag/OTC-20260817-track-a-xres-raw-pid-identity-physical-authorized-v1

Conversation

@blakinio

@blakinio blakinio commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Track A RUNTIME — v1 physical discriminator + helper repair

Task: OTC-20260817-track-a-xres-raw-pid-identity
Claim base: main@d9529da35ada6ab2a7bf4d2e70205cc0dd7b14ab

This PR no longer claims XID→PID proof. Its one authorized v1 physical launch exposed a deterministic protocol-parser defect in the helper promoted by #448; the run cleaned up correctly, the one-shot physical surfaces were removed, and this PR now carries only the helper repair, regression tests and durable evidence/checkpoint.

Physical v1 evidence

run: 32013868595
hosted_preflight_job: 95339063640
physical_job: 95339104951
runtime_governance: PASS
exact_client_launch_count: 1
namespace: /home/runner/_work/_otclient_tibia_re_state/tasks/OTC-20260817-track-a-xres-raw-pid-identity/ephemeral-32013868595-1
source_fence: PASS
support_fence: PASS
warp: PASS
xres_query_version: PROVEN
xres_server_version: 1.2
xres_query_client_ids_pid_identity: NOT_PROVEN
cleanup: COMPLETE
canonical_state_access: NONE
login: false
gameplay: false

The raw transport reached XRes 1.2 successfully, then the promoted parser raised QueryClientIds client-id value payload is truncated.

Root cause and repair

CLIENTIDVALUE.length is the byte length of its value payload. LocalClientPid uses length=4 followed by one CARD32 PID. The promoted helper treated 4 as four CARD32 values and multiplied it by four again.

The repair now:

value_length_bytes = CLIENTIDVALUE.length
require value_length_bytes % 4 == 0
value_count = value_length_bytes / 4
payload_end = fixed_record_end + value_length_bytes

Regression fixtures now encode a one-PID record with length=4 and add explicit non-CARD32-aligned rejection while retaining the existing malformed/truncated/oversized/ambiguous fail-closed coverage.

Safety/lifecycle boundary

The consumed v1 physical workflow and both v1 transform patchers are absent from the terminal diff. No second physical launch on this v1 branch is authorized. Current task phase is runtime_access:none, mutation_authorized:false while the helper repair is validated and merged.

Durable evidence:

  • docs/agents/evidence/OTC-20260817-track-a-xres-raw-pid-identity/20260817-v1-physical-parser-discriminator.md
  • docs/agents/evidence/OTC-20260817-track-a-xres-raw-pid-identity/20260817-helper-fix-audit.md

Fresh audit: PASS, 0 material findings.

After this repair reaches trusted main, the same active task continues on a fresh physical-authorized-v2 branch with a new one-launch admission. XID→PID ownership remains explicitly NOT_PROVEN until that v2 discriminator succeeds.

No owner-funded Codex/OpenAI API quota, credentials, login, gameplay, canonical runtime state, process memory, or client-byte mutation is used by the terminal #455 helper-repair phase.

@blakinio blakinio changed the title diag(track-a): prove raw XRes exact-client PID identity fix(track-a): correct XRes client-id length after physical discriminator Aug 17, 2026
@blakinio
blakinio marked this pull request as ready for review August 17, 2026 09:21
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@blakinio
blakinio enabled auto-merge (squash) August 17, 2026 09:22
@blakinio
blakinio merged commit 60ab740 into main Aug 17, 2026
14 checks passed
@blakinio
blakinio deleted the diag/OTC-20260817-track-a-xres-raw-pid-identity-physical-authorized-v1 branch August 17, 2026 09:25
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.

1 participant