Skip to content

feat: add native screensaver - #7

Merged
keys-i merged 3 commits into
forgefrom
screensaver
Aug 19, 2026
Merged

keys-i merged 3 commits into
forgefrom
screensaver

Conversation

@keys-i

@keys-i keys-i commented Aug 17, 2026

Copy link
Copy Markdown
Owner

What changed

Adds one clean-room native Rust screensaver command with generated rain, pipes, pond, and offline-weather scenes, bounded local Git history, and bounded native GIF87a/89a playback. It adds deterministic plain/JSON snapshots, sparse interactive terminal rendering, package smoke coverage, benchmark evidence, and documentation without another runtime dependency or copied upstream code/assets.

Part of #1

Verification

  • cargo test --locked — 21 unit and 6 CLI tests passed
  • cargo fmt --all --check
  • cargo clippy --all-targets --locked -- -D warnings
  • cargo build --release --locked
  • maturin macOS ARM64 wheel build and isolated five-command smoke test
  • PTY open/quit smoke restored the terminal and exited 0
  • Hyperfine: 100 runs after 20 warmups, 1.9 ± 0.2 ms, range 1.6–2.5 ms; stripped binary 439,264 bytes
  • Mandatory fallback review: VERDICT: PASS

Review

  • Public behavior, help, and relevant docs are updated.
  • New or changed failure paths have an observable test.
  • No unrelated files, generated output, secrets, or research clones are included.
  • I will follow the Code of Conduct.

Reviewer focus: the GIF parser opens once, reads at most 64 MiB, rejects more than 512 frames before decode, caps cumulative decode work at 128 million source pixels, and retains at most 16 million rendered pixels. Git output is limited to one 64-commit, 30-second, 8 MiB subprocess capture. Rollback is a revert of ecc59a9.

@keys-i
keys-i changed the base branch from science to forge August 19, 2026 06:08
@keys-i
keys-i marked this pull request as ready for review August 19, 2026 17:41
@keys-i
keys-i merged commit b9b4fca into forge Aug 19, 2026
18 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.

1 participant