Skip to content

fix(cli): select GAMEPAD runners after package publication - #243

Merged
dskvr merged 30 commits into
mainfrom
feat/nap-gamepad-cli-runners
Oct 15, 2026
Merged

dskvr merged 30 commits into
mainfrom
feat/nap-gamepad-cli-runners

Conversation

@dskvr

@dskvr dskvr commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Select conformance CLI 0.3.4 and Kehto CLI 0.5.5 in the private runner cache so napplet CLI 0.9.1 uses the GAMEPAD-capable tools. Update the runner assertions and release metadata together.

All five standalone jobs previously failed because conformance CLI 0.3.4 was not published. The prerequisite #242 is now merged; its npm publication and JSR publication succeeded. The required npm tarballs download successfully. This follow-up includes released main and targets main.

Validation:

  • Build: 12 tasks passed. Type-check: 18 tasks passed. Recursive unit tests passed.
  • Compiled macOS ARM64 binary: real npm provisioning with an empty PATH and a fresh cache passed in 1m20s, covering screenshots, deployment dry-run, conformance, Paja startup, and offline cache reuse.
  • AI-slop: 95/100, zero errors; existing complexity and dependency warnings in files unchanged by this PR. Diff whitespace checks passed.
  • All eight GitHub checks passed for head 3732571086d9e9a2276d682b49720ddbade82e2b: standalone smoke on all five platforms, CI, conformance, and AI-slop. The Linux x64 job initially hit a Chromium startup SIGSEGV after successful provisioning; one rerun of that unchanged job passed. The crash was not reproduced or separately fixed. Link checking is path-filtered and was not triggered because this PR changes no site/docs files.

The standalone smoke test is unchanged. Protocol and runner-cache behavior are outside this version-selection change. Investigation evidence is in .planning/debug/pr243-unpublished-runner.md.

dskvr and others added 12 commits October 12, 2026 09:09
Co-Authored-By: Codex <codex@openai.com>
Add the proposed GAMEPAD types, exact fire-and-forget envelopes, selected runtime injection, synchronous cached reads, and npm/JSR public entrypoints. Test mutation isolation, independent listeners, source trust and built SDK imports.

Co-Authored-By: Codex <codex@openai.com>
Co-Authored-By: Codex <codex@openai.com>
Co-Authored-By: Codex <codex@openai.com>
Co-Authored-By: Codex <codex@openai.com>
Co-Authored-By: Codex <codex@openai.com>
dskvr and others added 9 commits October 12, 2026 12:38
Co-Authored-By: Codex <codex@openai.com>
A throwing listener stopped delivery to every later listener, including
neutral focus-loss snapshots. Each listener now runs in its own try/catch
and the error is rethrown from a microtask so it is still reported.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The runtime prelude embedded createGamepadStateTools.toString(), which
breaks inside the opaque iframe once a bundler or coverage transform adds
helper references (__name, cov_*). The prelude now uses a literal JS source
kept equivalent to @napplet/nap/gamepad by a vector test, and isolates
throwing onChange listeners the same way the nap binding does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
NAP-GAMEPAD's Web Projection Guidance gives allow="gamepad 'none'" for
napplet frames. No NIP-5D or NAP text covers hid or usb, so the harness
no longer adds them to its loading model.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
installGamepadShim subscribed immediately, so every napplet using the
default domain set sent gamepad.subscribe and received controller state
for its lifetime, and the conformance prelude's own subscribe was credited
to the napplet under test. NAP-GAMEPAD lets the binding subscribe "before
or on first use"; both bindings now wait for the first read or onChange.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Replace the domain === 'gamepad' special case in the shared validator
with an optional forbiddenReason on EnvelopeSpec.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The snippet closed its onChange subscription in the same synchronous
block, so the handler could never run.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The release step hard-wrapped every existing CHANGELOG entry and left
runs of spaces in the new ones. Earlier entries now match main and only
the new version sections are added.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dskvr
dskvr marked this pull request as ready for review October 13, 2026 01:51
dskvr and others added 7 commits October 13, 2026 23:06
Co-Authored-By: Codex <noreply@openai.com>
Record the shared npm ETARGET failure across all five standalone platforms and restore the existing changelog formatting.

Co-Authored-By: Codex <noreply@openai.com>
Raise the Paja minimum to 0.21.0 and update the lockfile to its compatible core/NAP peer graph. Verify the packed 0.3.4 release with strict npm and pnpm installs while retaining GAMEPAD correlation-id validation.

Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>

# Conflicts:
#	.planning/STATE.md
#	skills/napplet-design/SKILL.md
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
dskvr and others added 2 commits October 14, 2026 09:29
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
@dskvr
dskvr changed the base branch from feat/nap-gamepad to main October 14, 2026 16:37
@dskvr
dskvr requested a review from hzrd149 October 14, 2026 17:36
@dskvr
dskvr merged commit efc6476 into main Oct 15, 2026
12 of 13 checks passed
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