Skip to content

ci(runtime): continue isolated official Linux client research - #289

Closed
blakinio wants to merge 461 commits into
mainfrom
ci/OTC-20260813-official-client-re-continuation
Closed

ci(runtime): continue isolated official Linux client research#289
blakinio wants to merge 461 commits into
mainfrom
ci/OTC-20260813-official-client-re-continuation

Conversation

@blakinio

Copy link
Copy Markdown
Owner

Track

Track A official-client-re / OTCLIENT-TIBIA-RE only.

Scope

  • starts a fresh main-based durable continuation after closed PR ci: prove official Tibia login without OCR on Synology #48;
  • declares isolated native-Linux runtime ownership for the official CipSoft client;
  • adds a non-invasive direct-runner namespace/dependency probe;
  • does not read or mutate Track B paths, runtime, display, ports, containers, volumes, or state.

Runtime namespace

  • runner: synology-otclient-01
  • state: /home/runner/_work/_otclient_tibia_re_state (legacy-image compatibility: /work/_otclient_tibia_re_state)
  • display: :98
  • WARP SOCKS: 127.0.0.1:25354
  • process marker: OTCLIENT_TIBIA_RE_TRACK=official-client-re

Validation

  • workflow YAML parse: PASS
  • compact checkpoint validation: PASS
  • git diff --check: PASS

Live runtime evidence will be appended to the task record as the programme continues.

@blakinio blakinio added the programme:infrastructure Infrastructure programme label Aug 13, 2026
@blakinio
blakinio force-pushed the ci/OTC-20260813-official-client-re-continuation branch from 2096771 to 94dc53d Compare August 13, 2026 18:36

Copy link
Copy Markdown
Owner Author

Track A continuation finding (2026-08-13): semantic, non-pixel login is currently blocked by one isolated runtime dependency, not by the official client UI itself. Existing .github/scripts/tibia-official-client-re-atspi.py already uses AT-SPI EditableText to set both credential fields and named Login action invocation, with no OCR. Historical run 31719725851 / job 94513342277 proved private session DBus startup, then at-spi-bus-launcher --launch-immediately --a11y=1 failed specifically with Cannot get the default GSettingsSchemaSource - is the gsettings-desktop-schemas package installed?. The current AT-SPI toolroot workflow installs at-spi2-core python3-pyatspi python3-gi gir1.2-atspi-2.0 but not gsettings-desktop-schemas/schema compiler. Launcher CLI/static-string probes do not expose a direct login option; observed startup strings are package/update oriented. Proposed next action: extend only the Track A private toolroot with gsettings-desktop-schemas + libglib2.0-bin, compile schemas inside the toolroot, rerun forced AT-SPI bus, then run the semantic login path with xdotool fallback disabled. No secrets were read or persisted during this inspection. Note: this session attempted to patch the workflow through the GitHub connector, but the connector safety layer blocked both workflow writes before repository mutation, so no code change is claimed.

@blakinio
blakinio marked this pull request as ready for review August 14, 2026 20:35

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c604dca229

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +26 to +27
TIBIA_TEST_EMAIL: ${{ secrets.TIBIA_TEST_EMAIL }}
TIBIA_TEST_PASSWORD: ${{ secrets.TIBIA_TEST_PASSWORD }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep credentials out of persistent child environments

Declaring the Tibia credentials at job scope exports them to every subprocess in both steps, including the DBus daemons and official client that are deliberately left running after the cleanup trap is disabled. The later unset only changes the workflow shell and cannot remove variables from already-started processes, so subsequent jobs running under the same account can read the credentials from /proc/<pid>/environ; scope them only to the login helper and explicitly remove them from every persistent process launch. docs/agents/TIBIA_RESEARCH_TRACKS.mdL91-L105

Useful? React with 👍 / 👎.

IFS=: read -r label bin display_no <<<"$spec"
[[ -n "$bin" && -x "$bin" ]] || { echo TRACK_A_XSERVER_${label}_AVAILABLE=false; continue; }
display=":$display_no"
rm -f "/tmp/.X${display_no}-lock" "/tmp/.X11-unix/X${display_no}" 2>/dev/null || true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Verify temporary display ownership before deleting sockets

When either display 99 or 100 is already owned by another task on this shared runner, this unconditional removal deletes that task's live X11 socket and lock before starting the probe. The task only declares display :98, so the workflow must reserve unique probe displays and verify their ownership rather than cleaning arbitrary shared display paths. docs/agents/TIBIA_RESEARCH_TRACKS.mdL93-L107

Useful? React with 👍 / 👎.

Comment on lines +115 to +118
if [[ "$new_sha" == "$old_sha" || $stable -lt 3 ]]; then
echo TRACK_A_UPDATE_FAILED=true
tail -n 80 "$work/launcher.log" | sed 's/^/TRACK_A_LAUNCHER_LOG=/' || true
exit 1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restore the canonical package when an update fails

If the launcher starts modifying the canonical package but then exits, stalls, or never reaches the stability threshold, this branch exits without restoring the verified backup created above. That can leave the only canonical runtime partially updated while the old client is already stopped, and the next run then fails its initial old-SHA fence, preventing an automatic retry; restore the backup on every unsuccessful update before exiting.

AGENTS.md reference: AGENTS.md:L210-L217

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Coordinator disposition: REJECT/SUPERSEDE as a whole-branch integration candidate.

Verified at head c04ff82918f954af019ab533bf6af0792dc730bf against current main@8fca1c3eee453d0d4ef8a47e0f15c9dbae491b45:

  • the branch is a broad stale-history continuation (461 commits / 208 changed files) rather than a bounded current-main integration slice;
  • its durable task still carries the now DISPROVEN/SUPERSEDED owner+0x88 -> 0xb5b880 P2 model; merged PR Track A: reconcile TCP writer RTTI evidence (rebased slice) #299 is canonical for the corrected P2 boundary;
  • exact-head CI run 31839506387 failed because actionlint failed, causing CI / Required to fail;
  • three material P1 safety review findings remain unresolved: persistent child credential environments, deletion of unowned X11 display sockets/locks, and missing canonical-package rollback on unsuccessful update.

This disposition does not discard the branch's unique evidence. The coordinator independently cross-checked and retains the exact-build structural reversible-world transition from run 31806312967 / job 94785974126 as bounded FACT evidence (TRACK_A_STRIP_COUNTS=0,33,88; exact SHA fenced; runner synology-otclient-01). The derived viewport-center player coordinate remains DERIVED, and A3/A4 are not promoted because the stimulus was keyboard/xdotool rather than the stable bridge/reference action path.

The outgoing-payload artifact from run 31815819731 is retained only as historical/negative evidence because its root 0xb5b880 premise is superseded.

Canonical promotion ledger: PR #300, docs/agents/reports/OTCLIENT-20260815-track-a-promotion-coordination.md. Closing this PR releases its broad active ownership; future work must use distinct bounded tasks/paths from current main.

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

Labels

programme:infrastructure Infrastructure programme

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant