Commit Graph
114 Commits
Author SHA1 Message Date
fraujulian c749fcd792 fix(install): preserve codex plugin registrations during sync 2026-09-16 19:18:22 +02:00
Julian lechner c6c8bf7105 feat: add keyboard plugin selection
CI / linux (push) Failing after 11s
2026-09-16 17:37:53 +02:00
Julian lechner 5b50f32f4b refactor(install): share target selection helpers 2026-09-16 16:54:23 +02:00
Julian lechner 1355cbe3cd feat(plugins): compact command output and preserve diagnostics 2026-09-16 16:53:40 +02:00
Julian lechner 453da10b61 feat(output): summarize managed file sync 2026-09-16 16:53:28 +02:00
Julian lechnerandClaude Haiku 4.5 0cc6909057 feat(scripts): add summary mode to plugin install/uninstall
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 14:32:17 +02:00
Julian lechner 18b6a7e390 feat(scripts): add summary mode to managed-file sync
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 14:24:39 +02:00
fraujulian 5b0c623a8d feat(plugins): add shared client tools 2026-09-14 01:07:28 +02:00
Julian lechnerandClaude Sonnet 5 0ae373c202 fix(installer): tolerate BOM, CRLF, and uppercase in older manifests (Bash)
Bash's manifest reader stripped only the trailing newline, so a
CRLF-terminated manifest left a stray \r on every hash, a UTF-8 BOM on the
header line was folded into the "path" field, and an uppercase hash never
matched sha256sum's lowercase output. Reproduced against a real
manifest written by an earlier version of the PowerShell installer, where
every single managed file was misreported as locally modified.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:27 +02:00
Julian lechnerandClaude Sonnet 5 1c2d155fcc fix(installer): write manifest hashes lowercase and without a BOM (PowerShell)
Windows PowerShell 5.1's -Encoding UTF8 always prepends a BOM, and
Get-FileHash returns uppercase hex. Bash's manifest reader expects neither,
so a manifest written by this module and later read by the Bash
equivalent (or vice versa) mismatched on every single entry: the BOM
folded into the header's first field, and every hash comparison failed on
case alone. Hashes are now lowercased on read and write, and the manifest
file itself is written UTF-8 without a BOM.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:17 +02:00
Julian lechnerandClaude Sonnet 5 1163f6d96e fix: mark shell scripts executable in git
All tracked .sh files were stored as mode 100644 (non-executable), even
though the CI workflow and normal usage invoke several of them directly
(./scripts/build.sh) rather than through `bash`. On a fresh Linux
checkout this fails with a permission error.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:06:37 +02:00
Julian lechnerandClaude Sonnet 5 80cff169f4 feat(installer): add managed-file manifest module (Bash)
Bash equivalent of the PowerShell manifest module: sync_managed_destination
plus its read/write/hash helpers, using sha256sum and a TSV manifest so
the same idempotent-install, stale-detection, and local-modification
protection behavior is available without a PowerShell dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:42:53 +02:00
Julian lechnerandClaude Sonnet 5 3f27cd0778 feat(installer): add managed-file manifest module (PowerShell)
Adds Sync-ManagedDestination and its manifest helpers: a per-destination
TSV of path -> SHA-256 that makes installation idempotent (unchanged files
are neither rewritten nor backed up), detects files this setup previously
installed that the source no longer ships (removed after backup, unless
changed locally, in which case they are backed up and left in place with
a warning), and never touches a file it never installed. Backups for a
run land together under backups/<stamp>/ instead of one suffix per file.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:42:48 +02:00
Julian lechner 396f62a503 feat(scripts): add cross-platform build and installation tools 2026-09-11 14:43:18 +02:00