Skip to content

Refresh library and logs UI - #332

Merged
aaf2tbz merged 2 commits into
mainfrom
agent/refresh-library-and-logs-ui
Jul 22, 2026
Merged

Refresh library and logs UI#332
aaf2tbz merged 2 commits into
mainfrom
agent/refresh-library-and-logs-ui

Conversation

@aaf2tbz

@aaf2tbz aaf2tbz commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Refresh the Library, Sharp/GOG Library, and Logs experience with consistent responsive glass headers, clearer game routing and install states, streamlined Sharp controls, and usable bounded diagnostics. The headers now share the sidebar's true window transparency and remain aligned at both wide and compact sizes.

Changes

  • Keep Steam/backend status badges in the Library title row at narrower window sizes.
  • Default the Library tab to Installed every time it is opened while retaining All Games and Not Installed as user-selectable filters.
  • Apply the sidebar-inspired translucent glass surface and shared responsive height to Library, Sharp/GOG, and Logs headers, with an explicit draggable Logs title region.
  • Replace the Sharp Installers/GOG tab pair with a compact source dropdown and remove the normal installer-header Redist control.
  • Align Sharp app metadata and primary controls as Play | Bottle | Tools, add bottle-scoped asset import, and simplify the Tools panel.
  • Give GOG app cards the same accent glow as installer cards.
  • Replace expanding log columns with three fixed selector buttons and one bounded content panel; exclude the active daily log from recent files and give each saved log its own drawer.
  • Add bounded, path-validated crash-report previews so text and readable binary-dump details can be inspected in place.
  • Cap the displayed live log stream at 1,000 lines and clear it at each 1,000-line threshold.
  • Show assigned routes on uninstalled Steam cards and match their Install action to the green Play styling.
  • Add npm run preview to skip setup only for unpackaged UI development while using the real ~/.metalsharp data.

PR Readiness (MANDATORY)

  • Compatibility verified with at least one real game (game + launch method noted below)
  • No hardcoded paths, secrets, or absolute /Users/... paths introduced
  • Config/rules TOML validated if configs/mtsp-rules.toml or DLL maps changed
  • Version triple (CMakeLists.txt, Cargo.toml, package.json, package-lock.json) in sync if version bumped
  • Bottle/runtime migration and launch behavior preserved (rollback plan noted if changed)
  • Docs / compatibility matrix updated for user-facing changes
  • Regression test added for each bug fix

Local toolchain (run before push)

  • cargo fmt --all -- --check passes (Rust)
  • cargo clippy --all-targets -- -D warnings passes (Rust)
  • cargo build --release passes (Rust backend)
  • cargo test passes (Rust — 641 tests)
  • C++ compiles if changed: not applicable; no C/C++ changes
  • clang-format --dry-run --Werror passes on any changed C/C++/Obj-C file: not applicable
  • ctest --test-dir build-native passes if tests changed: not applicable
  • TypeScript compiles if changed: cd app && npx tsc --noEmit
  • Biome + Prettier pass if TS/JS changed: cd app && npx @biomejs/biome ci src/ && npx prettier --check 'src/**/*.{ts,js,html,css,json}'
  • Shell scripts lint if changed: not applicable; no shell changes
  • tools/ci/validate-rules-toml.py passes if configs/mtsp-rules.toml changed: not applicable
  • python3 tools/ci/verify-dmg-workflow.py passes if release/bundle tooling changed: not applicable
  • Tested with at least one game (which one? which launch method? which drive?)
  • No hardcoded paths, secrets, or absolute /Users/... paths
  • No new files should be added to the repo root; place them under app/, tools/, tests/, etc.

Test notes

  • npm run build
  • npx tsc --noEmit
  • npx @biomejs/biome ci src/
  • npx prettier --check 'src/**/*.{ts,js,html,css,json}'
  • cargo fmt --all -- --check
  • cargo clippy --all-targets -- -D warnings
  • cargo test — 641 passed
  • cargo build --release
  • Crash preview allowlist verification: enumerated dump returns HTTP 200; unenumerated ~/.metalsharp/gog/auth.json returns HTTP 404 without reading the file.
  • Live preview against ~/.metalsharp with backend 0.56.5 on the external SSD checkout; Library, Sharp, and Logs views reviewed visually.
  • The shared pre-commit hook's cargo test --lib step reports no library targets found because the backend is a binary-only crate; the full cargo test command passes.

Risk

Low to moderate and localized to renderer layout plus bounded asset-copy and allowlisted crash-preview endpoints. Launch routing, bottle migration, runtime profiles, and game defaults are unchanged. Rollback is a revert of commit e30e2fd; existing app/bottle data is not migrated by this change.

@aaf2tbz
aaf2tbz force-pushed the agent/refresh-library-and-logs-ui branch 6 times, most recently from 6aaf424 to 2bd1b77 Compare July 22, 2026 20:42
@aaf2tbz
aaf2tbz marked this pull request as ready for review July 22, 2026 20:46

@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: 2bd1b77580

ℹ️ 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 thread app/src-rust/src/main.rs
@aaf2tbz
aaf2tbz force-pushed the agent/refresh-library-and-logs-ui branch from 2bd1b77 to e30e2fd Compare July 22, 2026 21:04
@aaf2tbz aaf2tbz added checklist-exception Bypass mandatory PR readiness checklist when an item is intentionally not applicable enhancement New feature or request Javascript Touches javascript based files. labels Jul 22, 2026
@aaf2tbz
aaf2tbz merged commit 99c78a8 into main Jul 22, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

checklist-exception Bypass mandatory PR readiness checklist when an item is intentionally not applicable enhancement New feature or request Javascript Touches javascript based files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant