ReviewOS

stacks/the-settlers-iii-remake

[S3-002] Build repeatable original-game observation fixtures

#18
Open chris opened this 9 days ago ·
9 days ago

S3-002: Build repeatable original-game observation fixtures

Parent and ownership

Parent epic: https://github.com/stacksjs/the-settlers-iii-remake/issues/5 Source owner: stacksjs/the-settlers-iii-remake. Master roadmap: https://github.com/stacksjs/the-settlers-iii-remake/issues/4.

Problem and observable result

Record initial state and ordered commands. Capture timings, outcomes, visuals, and audio. Provide repeatable instructions and evidence hashes.

The current application is a browser prototype. Passing the Riverlands campaign does not establish original-game or native parity. This issue is complete only when its stated behavior has retained evidence.

Evidence and interfaces

Verified source observations and decoded content enter immutable, versioned catalogs. Distinguish original facts, reference-remake behavior, and engineering decisions.

Pin the inspected revisions and fixture hashes in the implementation evidence. Original-game observations govern rules and timing. JSettlers is implementation evidence, not an authoritative balance specification. Unknown values remain explicitly unverified.

Acceptance criteria

  • Record initial state and ordered commands.
  • Capture timings, outcomes, visuals, and audio.
  • Provide repeatable instructions and evidence hashes.
  • The visible result agrees with the underlying simulation or platform state, including failure paths.
  • Tests exercise the maintained public interface and retain reproducible fixtures or execution receipts.

Test matrix

  • Repeat a fixture independently.
  • Detect changed starting conditions.
  • Exercise invalid input, cancellation or interruption, and repeated execution where this interface permits them.
  • Verify determinism/conservation for simulation changes and resource ownership/disposal for platform changes.
  • Run owning-repository lint, relevant type checks and tests. Capture actual native output for native capability claims.

Scope constraints

Implement this behavior as a complete verifiable slice. Do not silently expand into adjacent tickets or substitute simplified gameplay. Keep the shared TypeScript simulation, shared stx signals, and ts-css conventions. Native gameplay and HUD must not depend on a WebView. HomeOS reuse must not introduce a kernel dependency into the game. Existing unrelated edits and authored guidance must be preserved.

Blocked by

Upstream release and adoption

Application behavior belongs here. If a reproduction identifies a framework defect, repair and release its owning source first, update Stacks where affected, then install the verified packages here.

No node_modules edits, copied runtimes, generated-source string patches, fabricated globals, successful no-op implementations, or skipped release gates. Push tested conventional commits as Chris to the owning origin/main without coauthor trailers or force pushes.

Completion evidence

  • Implementation commits and relevant upstream issue links.
  • Exact checks and results, fixture hashes, and screenshots/native execution evidence where applicable.
  • Published package versions, downstream lockfile identity, and release receipts when affected.
  • Remaining limitations stated explicitly. Partial work does not close this issue.
9 days ago

Partial implementation is upstream in 6eb56c3, including the reviewed observation harness, operator protocol and execution receipt.

Fixture/run schemas, exact source and capture identities, starting-state/procedure fingerprints, ordered commands, PNG/PCM validation, interruption and repeat comparison are implemented. Reports retain originalBehaviorAdmitted: false and independentExecutionVerified: false. Synthetic tests do not count as original observations.

The malformed-PNG regression exposed unbounded decompression in the owning image library. That source fix was released using its existing command as @stacksjs/ts-png@0.1.10; source CI, release CI and publication passed. The game now pins the verified package. The retained adoption receipt includes the original publish integrity, registry signature verification and all 29 installed files.

Combined validation passed: frozen Bun 1.4.2 installation, all type pipelines, lint with zero issues, 47 unit tests / 2,636 assertions, actual asset import and verification, production build and browser campaign. Root independently reran all nine observation tests / 32 assertions and the production browser campaign.

This issue stays open. The available reference repository and unexecuted Amazons demo do not provide authentic Gold observations, actual original timings/outcomes, captures or an independent repeat. No acceptance checkbox is advanced by the harness alone.

8 days ago

The public Amazons demo archive already used by the maintained importer also contains an original executable candidate, so the available evidence is no longer limited to decoded media.

  • Archive:50875904 bytes, SHA256 ac87c418101aadeb2338f04ecc79a56bf816ce1c6c7adc40bb7dc435ca4e7f65, matching the pinned importer.
  • Member:S3_A_Demo.exe,3485743 bytes, SHA256 c9db1d76008058bf4be4034802f30b6300db6be18196d233a64b38f335cbb990, ZIP CRC32 5d42cfc0.
  • Parsed identity:PE32 GUI, Intel x86, embedded fixed-version candidate 1.25.0.125. This is static resource metadata; a displayed runtime version has not been observed.

The executable is retained locally outside Git and public artifacts. It has not been executed and no original behavior, timing, tower capacity or Gold Edition rule is admitted from this metadata. It supplies a concrete demo-build candidate for the existing edition-scoped observation workflow; Gold Edition remains separate. No observation fixture or completion result has been fabricated.

Sign in to comment on this issue.