Skip to content

Conversation

@lefticus
Copy link
Member

No description provided.

lefticus and others added 20 commits December 20, 2025 23:03
- Add cmake/Emscripten.cmake for WASM build configuration
- Configure pthreads, ASYNCIFY, and resource embedding
- Add web/shell.html with xterm.js terminal emulation
- Use FS.init() to connect stdin/stdout to xterm.js
- Conditional compilation for WASM vs native builds
- URL parameter support for script selection (?script=name)
- Fix JSON parsing for tiles without animation data

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Set up log_sink before loading scripts to prevent stdout spam
- Add coi-serviceworker for GitHub Pages compatibility
- Service worker adds required COOP/COEP headers for SharedArrayBuffer

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Deploy main branch to root URL
- Deploy develop branch to /develop/
- Deploy all tags to /{tag}/
- Uses Ninja for parallel builds
- Preserves existing deployments with keep_files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove FORCE from cache variables
- Enable IPO (was unnecessarily disabled)
- Disable static analysis and warnings-as-errors for WASM
- Disable testing (no WASM test runner)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove debug __EMSCRIPTEN__ logging
- Shorten verbose multi-line comments to inline comments
- Reduce code noise while maintaining functionality

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Consolidates all Emscripten-related configuration in one place.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use a single main(int argc, const char** argv) for both native and WASM builds by enabling CLI11 in Emscripten builds and populating Module.arguments from URL parameters. This eliminates duplicate main() functions and consolidates argument parsing logic.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Enable native WebAssembly exception handling with -fwasm-exceptions
- Make stdout/stderr flush on newlines for immediate visibility
- Write stderr to both browser console and visible terminal
- Reduce terminal height from 50 to 30 rows to match actual usage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Resolved critical input issues in WebAssembly build where dialogs would
bounce (close and immediately reopen) and script prompt showed repeating
characters.

Root cause: stdin() was returning JavaScript null instead of 0 when the
input buffer was empty. FTXUI's official WASM implementation expects 0
(NULL character) to signal no data available.

Changes:
- Update FTXUI dependency from 5.0.0 to 6.1.9
- Fix stdin() to return `stdin_buffer.shift() || 0` matching FTXUI pattern
- Add CPR (Cursor Position Report) filter to prevent escape sequences
  from contaminating user input
- Wrap popup_renderer button in Container::Vertical for proper focus
  management
- Remove redundant onBinary handler (onData handles all input)
- Update bitmap.hpp for FTXUI 6.1.9 API (removed selected_box field)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Configure Dependabot to automatically check for and update GitHub Actions
versions on a weekly basis. This will keep workflow actions up to date and
create PRs for version updates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Update outdated GitHub Actions to their latest versions to fix
compatibility issues and failing builds:

- actions/checkout: v2 → v4
- actions/github-script: v3 → v7
- codecov/codecov-action: v2 → v4
- github/codeql-action: v2 → v3
- EndBug/add-and-commit: v4 → v9

These updates resolve Node.js deprecation warnings and ensure
compatibility with current GitHub Actions runners.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Conservative update to more recent but stable platform versions:

Operating Systems:
- ubuntu-20.04 → ubuntu-22.04 (LTS, supported until 2027)
- macos-10.15 → macos-13 (Ventura)
- windows-2019 → windows-2022 (latest stable)

Compilers:
- llvm-15.0.2 → llvm-17.0.6 (stable release)
- gcc-11 → gcc-13 (stable release)

These updates ensure compatibility with current toolchains while
avoiding bleeding-edge versions that may have stability issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Dec 29, 2025

Codecov Report

❌ Patch coverage is 6.81818% with 41 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (integrate@718911f). Learn more about missing BASE report.

Files with missing lines Patch % Lines
src/main.cpp 14.28% 7 Missing and 5 partials ⚠️
src/tile_set.hpp 0.00% 12 Missing ⚠️
src/game_components.cpp 0.00% 11 Missing ⚠️
src/bitmap.hpp 0.00% 2 Missing ⚠️
src/game.cpp 0.00% 2 Missing ⚠️
src/print.hpp 50.00% 1 Missing ⚠️
src/scripted_game.hpp 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             integrate      #9   +/-   ##
===========================================
  Coverage             ?   2.44%           
===========================================
  Files                ?      15           
  Lines                ?     980           
  Branches             ?     534           
===========================================
  Hits                 ?      24           
  Misses               ?     900           
  Partials             ?      56           
Flag Coverage Δ
Linux 0.99% <2.50%> (?)
Windows 2.29% <9.09%> (?)
macOS 0.73% <2.43%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

lefticus and others added 8 commits December 29, 2025 15:05
Fixed critical bugs in Hardening.cmake that caused compilation errors:

1. **Bare -D flag error**: NEW_CXX_DEFINITIONS incorrectly included -D
   prefix. target_compile_definitions() expects bare names (e.g.,
   "_GLIBCXX_ASSERTIONS"), not compiler flags (e.g., "-D_GLIBCXX_ASSERTIONS").
   CMake adds -D automatically.

2. **Quoted flags in command line**: Used string concatenation instead of
   list operations, causing flags to be grouped and quoted incorrectly.

3. **Order-of-operations**: Moved travels_options creation before first
   use to ensure proper initialization.

4. **Global hardening option**: Added travels_ENABLE_GLOBAL_HARDENING
   option to explicitly control whether hardening applies globally.

Changes:
- Initialize hardening variables as lists, not strings
- Use list(APPEND) instead of string concatenation
- Remove -D prefix from compile definitions (add back for CMAKE_CXX_FLAGS)
- Properly convert lists to strings for global CMAKE_CXX_FLAGS
- Add travels_ENABLE_GLOBAL_HARDENING option in travels_setup_options
- Add debug output to track flag propagation

This fixes the "macro names must be identifiers" error when building
lodepng and other targets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Clean up debug output that was added for troubleshooting.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Switch from CMAKE_CXX_FLAGS variables to add_compile_options(),
add_compile_definitions(), and add_link_options() for global hardening.

These commands apply to all targets in the current directory and
subdirectories, including FetchContent dependencies, providing better
global scope than CMAKE_ variable manipulation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Renamed workflow from deploy-pages.yml to wasm.yml and updated to:
- Build WASM on all events (PRs, releases, pushes to main/develop/tags)
- Deploy to GitHub Pages only on pushes to main, develop, or tags
- Skip deployment on pull requests and releases

This ensures WASM builds are validated on every CI run while only
deploying when appropriate.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The worker.js file is not generated in the current Emscripten build as
the worker code is embedded inline in the main JS file. Removing this
copy command prevents CI failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.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