@sebastienrousseau/dotfiles 0.2.504 → 0.2.505
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/README.md +4 -4
- package/docs/COPYRIGHT +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/A2A.md +2 -2
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/02-tutorials/01-first-install.md +1 -1
- package/docs/operations/RELEASE_PIPELINE.md +3 -3
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +6 -6
- package/docs/security/AUTOMATION_SECRETS.md +1 -1
- package/docs/security/MCP_POLICY.md +4 -4
- package/docs/security/SECURITY_CHECKLIST.md +1 -1
- package/docs/security/SOUP_REGISTER.md +4 -4
- package/install.sh +7 -6
- package/package.json +1 -1
- package/scripts/ci/check-copyright-headers.sh +2 -1
- package/scripts/ci/check-shell-preamble.sh +2 -1
- package/scripts/ci/guard-gitleaks-checkout.sh +2 -1
- package/scripts/demo/record.sh +2 -1
- package/scripts/diagnostics/a2a-conformance.sh +2 -1
- package/scripts/diagnostics/alias-governance.sh +2 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -1
- package/scripts/diagnostics/aliases-manifest.sh +2 -1
- package/scripts/diagnostics/benchmark.sh +2 -1
- package/scripts/diagnostics/conflicts.sh +2 -1
- package/scripts/diagnostics/doctor-unified.sh +2 -1
- package/scripts/diagnostics/doctor.sh +2 -1
- package/scripts/diagnostics/drift-dashboard.sh +2 -1
- package/scripts/diagnostics/health.sh +2 -1
- package/scripts/diagnostics/history-analysis.sh +2 -1
- package/scripts/diagnostics/mcp-doctor.sh +2 -1
- package/scripts/diagnostics/perf.sh +2 -1
- package/scripts/diagnostics/scorecard.sh +2 -1
- package/scripts/diagnostics/secret-governance.sh +2 -1
- package/scripts/diagnostics/security-score.sh +2 -1
- package/scripts/diagnostics/smoke-test.sh +2 -1
- package/scripts/diagnostics/snapshot.sh +2 -1
- package/scripts/diagnostics/verify.sh +2 -1
- package/scripts/diagnostics/verify_state.sh +2 -1
- package/scripts/diagnostics/version-locks.sh +2 -1
- package/scripts/diagnostics/workstation-attestation.sh +2 -1
- package/scripts/dot/commands/agent.sh +2 -1
- package/scripts/dot/commands/agents.sh +2 -1
- package/scripts/dot/commands/ai.sh +8 -22
- package/scripts/dot/commands/aliases.sh +2 -1
- package/scripts/dot/commands/appearance.sh +2 -1
- package/scripts/dot/commands/core.sh +2 -1
- package/scripts/dot/commands/diagnostics.sh +2 -1
- package/scripts/dot/commands/env-emit.sh +2 -1
- package/scripts/dot/commands/fleet.sh +2 -1
- package/scripts/dot/commands/init.sh +2 -1
- package/scripts/dot/commands/lint.sh +2 -1
- package/scripts/dot/commands/manual.sh +2 -1
- package/scripts/dot/commands/meta.sh +2 -1
- package/scripts/dot/commands/patterns.sh +2 -1
- package/scripts/dot/commands/registry.sh +2 -1
- package/scripts/dot/commands/restore.sh +2 -1
- package/scripts/dot/commands/secrets.sh +2 -1
- package/scripts/dot/commands/security.sh +2 -1
- package/scripts/dot/commands/tools.sh +2 -1
- package/scripts/fonts/install-nerd-fonts.sh +2 -1
- package/scripts/fonts/patch-fonts.sh +2 -1
- package/scripts/git-hooks/install.sh +2 -1
- package/scripts/git-hooks/pre-commit-audit.sh +3 -2
- package/scripts/lib/secrets_provider.sh +2 -1
- package/scripts/ops/ai-setup.sh +2 -1
- package/scripts/ops/bundle.sh +2 -1
- package/scripts/ops/chaos.sh +2 -1
- package/scripts/ops/chezmoi-apply.sh +11 -3
- package/scripts/ops/chezmoi-diff.sh +2 -1
- package/scripts/ops/chezmoi-remove.sh +2 -1
- package/scripts/ops/chezmoi-update.sh +2 -1
- package/scripts/ops/heal-chezmoi.sh +2 -1
- package/scripts/ops/heal-system.sh +2 -1
- package/scripts/ops/heal-tools.sh +2 -1
- package/scripts/ops/heal.sh +2 -1
- package/scripts/ops/post-apply-repair.sh +2 -1
- package/scripts/ops/prewarm.sh +2 -1
- package/scripts/ops/release.sh +2 -1
- package/scripts/ops/rollback.sh +2 -1
- package/scripts/ops/setup.sh +2 -1
- package/scripts/ops/teleport.sh +2 -1
- package/scripts/qa/check-version-consistency.sh +2 -1
- package/scripts/qa/coverage-baseline.sh +2 -1
- package/scripts/qa/docs-coverage.sh +2 -1
- package/scripts/qa/reliability-audit.sh +2 -1
- package/scripts/qa/scorecard-snapshot.sh +2 -1
- package/scripts/qa/traceability-coverage.sh +2 -1
- package/scripts/qa/validate-examples.sh +2 -1
- package/scripts/qa/wsl-contract.sh +2 -1
- package/scripts/secrets/age-init.sh +2 -1
- package/scripts/secrets/create-secrets-file.sh +2 -1
- package/scripts/secrets/encrypt-ssh-key.sh +2 -1
- package/scripts/security/backup.sh +2 -1
- package/scripts/security/check-disclosure-key-expiry.sh +2 -1
- package/scripts/security/dns-doh.sh +2 -1
- package/scripts/security/encryption-check.sh +2 -1
- package/scripts/security/enforce-policies.sh +2 -1
- package/scripts/security/firewall.sh +2 -1
- package/scripts/security/lock-configs.sh +2 -1
- package/scripts/security/lock-screen.sh +2 -1
- package/scripts/security/manage-secrets.sh +2 -1
- package/scripts/security/ssh-cert.sh +2 -1
- package/scripts/security/telemetry-kill.sh +2 -1
- package/scripts/security/usb-safety.sh +2 -1
- package/scripts/theme/apply-gnome-theme.sh +2 -1
- package/scripts/theme/extract-heic-frames.sh +2 -1
- package/scripts/theme/extract-theme.py +2 -1
- package/scripts/theme/install-boot-logo.sh +2 -1
- package/scripts/theme/install-catppuccin-themes.sh +2 -1
- package/scripts/theme/install-cursors.sh +2 -1
- package/scripts/theme/install-file-icons.sh +2 -1
- package/scripts/theme/install-grub-theme.sh +2 -1
- package/scripts/theme/install-lock-icon.sh +2 -1
- package/scripts/theme/merge-wallpaper.sh +2 -1
- package/scripts/theme/rebuild-themes.sh +2 -1
- package/scripts/theme/switch.sh +2 -1
- package/scripts/theme/wallpaper-rotate.sh +2 -1
- package/scripts/theme/wallpaper-sync.sh +2 -1
- package/scripts/tools/cmatrix.sh +2 -1
- package/scripts/tools/detect-collisions.py +2 -1
- package/scripts/tools/emoji-picker.sh +2 -1
- package/scripts/tools/figlet-banner.sh +2 -1
- package/scripts/tools/log-rotate.sh +2 -1
- package/scripts/tools/lolcat-wrap.sh +2 -1
- package/scripts/tools/pipes.sh +2 -1
- package/scripts/tuning/linux.sh +2 -1
- package/scripts/tuning/macos.sh +2 -1
- package/scripts/uninstall.sh +2 -1
- package/scripts/version-sync.sh +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
This file documents all notable changes to this project.
|
|
4
4
|
|
|
5
|
+
## v0.2.505 — 2026-06-04
|
|
6
|
+
|
|
7
|
+
Claude Code is no longer installed through mise/npm. npm 11 silently drops
|
|
8
|
+
the platform-native `optionalDependency` on global installs, leaving a stub
|
|
9
|
+
binary that errors with "claude native binary not installed". The fix moves
|
|
10
|
+
Claude Code to Anthropic's native installer and audits the other AI tools for
|
|
11
|
+
the same class of bug. This release also repairs Linux install breaks, hardens
|
|
12
|
+
cross-platform shell parity (bash, fish, nushell), and adds SPDX license
|
|
13
|
+
headers across the source tree.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **Claude Code install** — switched off the mise `npm:@anthropic-ai/claude-code`
|
|
18
|
+
pin onto Anthropic's native installer (`~/.local/bin/claude`, self-updating),
|
|
19
|
+
which fetches the platform binary directly and sidesteps the npm 11
|
|
20
|
+
optional-dependency bug. Bootstrap (`run_onchange_15-ai-cli-tools`), `dot ai`,
|
|
21
|
+
and `dot apply`'s "install missing providers" flow all install Claude Code
|
|
22
|
+
natively now instead of reinstalling the broken package.
|
|
23
|
+
- **Linux install breaks (every distro):** Neovim fetched `nvim-linux64.tar.gz`,
|
|
24
|
+
an asset Neovim renamed after v0.10.3, so the pinned v0.11.6 download 404'd and
|
|
25
|
+
aborted the whole provision run — now arch-aware (`nvim-linux-{x86_64,arm64}`)
|
|
26
|
+
with ARM support; AIChat defaulted to a `latest` tag baked into the asset
|
|
27
|
+
filename (also a guaranteed 404) — now pinned via `AICHAT_TAG`.
|
|
28
|
+
- **Clipboard (`cb`):** crashed under `set -u` on non-Wayland Linux
|
|
29
|
+
(`$WAYLAND_DISPLAY` was referenced unguarded); added `command -v` guards, an
|
|
30
|
+
`xsel` fallback, and clear per-backend (Wayland/X11/WSL) error messages.
|
|
31
|
+
- **Bash parity:** `dot_bashrc` shipped ~14 hardcoded aliases and none of the
|
|
32
|
+
library functions — it never sourced the shared `~/.config/shell/*` hub. It
|
|
33
|
+
now loads the same layers zsh does (867 aliases + 185 functions), matching its
|
|
34
|
+
documented Tier-1 "Full" status.
|
|
35
|
+
- **fish/nushell `goto`/`cdls`:** these change directory but were run through a
|
|
36
|
+
`bash -c` subshell, so the `cd` was discarded — they silently no-op'd.
|
|
37
|
+
Reimplemented natively (fish functions; nushell `def --env`, the only form
|
|
38
|
+
whose `cd` propagates to the caller).
|
|
39
|
+
- **Docs:** fixed 18 hardcoded absolute markdown links (`/home/seb/.dotfiles/…`,
|
|
40
|
+
broken on GitHub and on any other machine) to file-relative paths.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **Removed two redundant mise pins** uncovered while auditing the other AI
|
|
45
|
+
tools: `npm:codex-cli` (a legacy package — codex.js — that collided on the
|
|
46
|
+
`codex` bin name; Codex is already provided by the native `codex` pin) and
|
|
47
|
+
`npm:opencode-ai` (a broken-wrapper duplicate of the native `opencode` pin).
|
|
48
|
+
Both shims already resolved to the native builds, so runtime behaviour is
|
|
49
|
+
unchanged. copilot/gemini/qwen/zai were checked and are unaffected.
|
|
50
|
+
- **Extracted** the shared Claude native-installer helper and the AI
|
|
51
|
+
provider→mise-package map into `lib/dot/ai-install.sh`, removing duplication
|
|
52
|
+
across `dot ai` and `dot apply`.
|
|
53
|
+
- **Cross-distro robustness:** Debian/Ubuntu now symlink `~/.local/bin/{bat,fd}`
|
|
54
|
+
to `batcat`/`fdfind`; a missing apt/dnf/pacman warns loudly instead of silently
|
|
55
|
+
installing nothing; WSL gets a best-effort `wslu` install for `wslview`. fish
|
|
56
|
+
and nushell now export `EDITOR`/`VISUAL`/`PAGER` to match the zsh/bash profile.
|
|
57
|
+
- **Licensing:** added `SPDX-License-Identifier: MIT` headers (SPDX-first / REUSE
|
|
58
|
+
form) and normalized the copyright line to `Sebastien Rousseau` across 831
|
|
59
|
+
repo-only source files; dropped the contradictory `All rights reserved.`.
|
|
60
|
+
- **README** — fixed the OpenSSF Best Practices badge (was linking to the
|
|
61
|
+
new-project form with a static label; now the live `cii/percentage/12840`
|
|
62
|
+
endpoint linked to the real project).
|
|
63
|
+
|
|
5
64
|
## v0.2.504 — 2026-06-03
|
|
6
65
|
|
|
7
66
|
First-class **stock-macOS** support: the installer and the entire `dot` CLI
|
package/README.md
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<a href="https://github.com/sebastienrousseau/dotfiles/actions"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/dotfiles/ci.yml?style=for-the-badge&logo=github" alt="Build" /></a>
|
|
13
|
-
<a href="https://github.com/sebastienrousseau/dotfiles/releases/latest"><img src="https://img.shields.io/badge/Version-v0.2.
|
|
13
|
+
<a href="https://github.com/sebastienrousseau/dotfiles/releases/latest"><img src="https://img.shields.io/badge/Version-v0.2.505-blue?style=for-the-badge" alt="Version" /></a>
|
|
14
14
|
<a href="https://github.com/sebastienrousseau/dotfiles/releases"><img src="https://img.shields.io/github/downloads/sebastienrousseau/dotfiles/total?style=for-the-badge" alt="Downloads" /></a>
|
|
15
15
|
<a href="https://codespaces.new/sebastienrousseau/dotfiles"><img src="https://img.shields.io/badge/Open%20in-Codespaces-blue?style=for-the-badge&logo=github" alt="Open in GitHub Codespaces" /></a>
|
|
16
16
|
<a href="https://scorecard.dev/viewer/?uri=github.com/sebastienrousseau/dotfiles"><img src="https://img.shields.io/ossf-scorecard/github.com/sebastienrousseau/dotfiles?style=for-the-badge&label=OpenSSF%20Scorecard" alt="OpenSSF Scorecard" /></a>
|
|
17
|
-
<a href="https://www.bestpractices.dev/projects/
|
|
17
|
+
<a href="https://www.bestpractices.dev/projects/12840"><img src="https://img.shields.io/cii/percentage/12840?style=for-the-badge&label=OpenSSF%20Best%20Practices" alt="OpenSSF Best Practices" /></a>
|
|
18
18
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License: MIT" /></a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
curl -fsSL -o /tmp/dotfiles-install.sh \
|
|
55
|
-
https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.
|
|
55
|
+
https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.505/install.sh
|
|
56
56
|
echo "d5a04c5e2813a93a63c8ecce9655cf3d107f6068862c6eba84a92cf22f801c7e /tmp/dotfiles-install.sh" \
|
|
57
57
|
| shasum -a 256 -c
|
|
58
58
|
bash /tmp/dotfiles-install.sh
|
|
@@ -300,7 +300,7 @@ See the [Migration Guide](docs/operations/MIGRATION.md) for version upgrades.
|
|
|
300
300
|
- **Pattern library** (`dot patterns`) — architect, hardener, and refactor patterns bundled in `dot_config/ai/patterns/`
|
|
301
301
|
- **MCP policy enforcement** (`dot mcp`) — validate the Model Context Protocol registry against policy
|
|
302
302
|
- **AI commit messages** (`dot commit`) — conventional commits generated from the staged diff
|
|
303
|
-
- **AI tools** (`dot ai`) —
|
|
303
|
+
- **AI tools** (`dot ai`) — Codex, GitHub Copilot, Gemini CLI, and friends managed via Mise; Claude Code via Anthropic's native installer
|
|
304
304
|
- **Attestation logs** — every agent session is logged with a policy hash and an outcome
|
|
305
305
|
|
|
306
306
|
</details>
|
package/docs/COPYRIGHT
CHANGED
package/docs/index.md
CHANGED
|
@@ -7,7 +7,7 @@ render_with_liquid: false
|
|
|
7
7
|
Cross-platform, signed, local-first dotfiles for macOS, Linux, and WSL.
|
|
8
8
|
|
|
9
9
|
[](https://github.com/sebastienrousseau/dotfiles/actions)
|
|
10
|
-
[](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.505)
|
|
11
11
|
[](https://github.com/sebastienrousseau/dotfiles/releases)
|
|
12
12
|
|
|
13
13
|
This site is published from the `docs/` directory on `master` and tracks the current workstation baseline, operational guidance, and security material for the repository.
|
|
@@ -38,6 +38,6 @@ This site is published from the `docs/` directory on `master` and tracks the cur
|
|
|
38
38
|
|
|
39
39
|
## Current Release
|
|
40
40
|
|
|
41
|
-
- Current tagged release: [`v0.2.
|
|
41
|
+
- Current tagged release: [`v0.2.505`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.505)
|
|
42
42
|
- Latest release feed: [GitHub releases](https://github.com/sebastienrousseau/dotfiles/releases/latest)
|
|
43
43
|
- Source repository: [sebastienrousseau/dotfiles](https://github.com/sebastienrousseau/dotfiles)
|
package/docs/interop/A2A.md
CHANGED
|
@@ -8,8 +8,8 @@ The repository now ships an agent card and an A2A-ready discovery document.
|
|
|
8
8
|
|
|
9
9
|
Artifacts:
|
|
10
10
|
|
|
11
|
-
- [agent-card.json](/
|
|
12
|
-
- [agent.json](
|
|
11
|
+
- [agent-card.json](../../defaults/dot_config/dotfiles/agent-card.json)
|
|
12
|
+
- [agent.json](../../.well-known/agent.json)
|
|
13
13
|
|
|
14
14
|
Core properties:
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@ render_with_liquid: false
|
|
|
4
4
|
|
|
5
5
|
# Introduction
|
|
6
6
|
|
|
7
|
-
This manual describes `.dotfiles` v0.2.
|
|
7
|
+
This manual describes `.dotfiles` v0.2.505 — a trusted agent workstation baseline for macOS, Linux, and WSL.
|
|
8
8
|
|
|
9
9
|
The repository is more than a personal dotfiles collection. It ships as workstation infrastructure: signed, attested, multi-platform, AI-aware, and self-healing. Chezmoi handles templating and platform differences. The `dot` CLI sits on top and coordinates lifecycle operations.
|
|
10
10
|
|
|
@@ -184,7 +184,7 @@ After `dot doctor` reports a healthy score, you have:
|
|
|
184
184
|
| **Editor** | Neovim with lazy.nvim + LSP + theme-synced colorscheme |
|
|
185
185
|
| **Terminal** | Ghostty/Alacritty/Kitty/WezTerm configs (pick whichever is installed) |
|
|
186
186
|
| **Git** | Signed commits, delta diff, conventional commit template |
|
|
187
|
-
| **AI tooling** |
|
|
187
|
+
| **AI tooling** | Codex, Copilot CLI, Gemini CLI via mise; Claude Code via Anthropic's native installer |
|
|
188
188
|
| **Secret store** | Age key, SOPS config, `dot secrets` command ready |
|
|
189
189
|
| **Security** | Gitleaks, detect-secrets baseline, signed attestation log |
|
|
190
190
|
| **Theme engine** | K-Means wallpaper extractor, system + custom wallpaper discovery |
|
|
@@ -59,7 +59,7 @@ where dependencies allow.
|
|
|
59
59
|
| `security-release.yml` (manifest job) | `release.published`, dispatch | Build `ALL_SHA256SUMS` over every release asset, Cosign-sign it. | `ALL_SHA256SUMS` + `.sig` + `.pem`. |
|
|
60
60
|
| `release-distribute-homebrew.yml` | `release.published`, dispatch | Hash `dot-VERSION.tar.gz`, regenerate `install/homebrew/dot.rb`, push branch + PR to `sebastienrousseau/homebrew-tap`. | One PR on the tap repo. |
|
|
61
61
|
| `release-distribute-scoop.yml` | `release.published`, dispatch | Hash `dot-VERSION.zip`, rewrite `install/scoop/dot.json` via jq (both 64bit + arm64 point at same zip), PR to `sebastienrousseau/scoop-bucket`. | One PR on the bucket repo. |
|
|
62
|
-
| `release-distribute-aur.yml` | `release.published`, dispatch | Hash `dot-VERSION.tar.gz`, rewrite `pkgver` + `sha256sums` in `install/aur/PKGBUILD`, regenerate `.SRCINFO` via dockerised `makepkg`, push to `ssh://aur@aur.archlinux.org/
|
|
62
|
+
| `release-distribute-aur.yml` | `release.published`, dispatch | Hash `dot-VERSION.tar.gz`, rewrite `pkgver` + `sha256sums` in `install/aur/PKGBUILD`, regenerate `.SRCINFO` via dockerised `makepkg`, push to `ssh://aur@aur.archlinux.org/dot-cli-git.git`. | One commit on AUR. |
|
|
63
63
|
| `release-attestation-check.yml` | weekly cron + dispatch | Verify the latest release carries the full attestation bundle (SBOM + sig + cert + intoto + manifest + sig + cert). | Opens or comments on a tracking issue. |
|
|
64
64
|
|
|
65
65
|
## Why `created` vs `published`
|
|
@@ -93,7 +93,7 @@ manifest job after late asset uploads picks up the new state and the
|
|
|
93
93
|
|---|---|---|
|
|
94
94
|
| Homebrew | `sebastienrousseau/homebrew-tap` | Tap repo exists (currently bare README + LICENSE). Workflow creates the `Formula/dot.rb` path on first publish. |
|
|
95
95
|
| Scoop | `sebastienrousseau/scoop-bucket` | Bucket repo exists (currently bare). Workflow creates `bucket/dot.json` on first publish. |
|
|
96
|
-
| AUR | `ssh://aur@aur.archlinux.org/
|
|
96
|
+
| AUR | `ssh://aur@aur.archlinux.org/dot-cli-git.git` | **Manual one-time step**: the maintainer must create the package entry via the AUR web UI before the workflow's `git clone` can succeed. The workflow exits with a clear error message on the first run if the repo doesn't exist. |
|
|
97
97
|
|
|
98
98
|
## Verifying a release
|
|
99
99
|
|
|
@@ -105,7 +105,7 @@ independently.
|
|
|
105
105
|
|
|
106
106
|
## Known caveats
|
|
107
107
|
|
|
108
|
-
- **AUR `pkgname=
|
|
108
|
+
- **AUR `pkgname=dot-cli-git`**: AUR's `-git` convention means
|
|
109
109
|
"tracks git HEAD", but the workflow publishes tagged stable
|
|
110
110
|
releases. Either rename to plain `dotfiles` in
|
|
111
111
|
`install/aur/PKGBUILD` and register that package, or accept the
|
|
@@ -20,12 +20,12 @@ It defines a signed, local-first workstation baseline for agentic development on
|
|
|
20
20
|
|
|
21
21
|
The source of truth lives in tracked JSON artifacts:
|
|
22
22
|
|
|
23
|
-
- [policy-bundles.json](/
|
|
24
|
-
- [agent-profiles.json](/
|
|
25
|
-
- [mcp-policy.json](/
|
|
26
|
-
- [mcp-registry.json](/
|
|
27
|
-
- [model-registry.json](/
|
|
28
|
-
- [prompt-registry.json](/
|
|
23
|
+
- [policy-bundles.json](../../defaults/dot_config/dotfiles/policy-bundles.json)
|
|
24
|
+
- [agent-profiles.json](../../defaults/dot_config/dotfiles/agent-profiles.json)
|
|
25
|
+
- [mcp-policy.json](../../defaults/dot_config/dotfiles/mcp-policy.json)
|
|
26
|
+
- [mcp-registry.json](../../defaults/dot_config/dotfiles/mcp-registry.json)
|
|
27
|
+
- [model-registry.json](../../defaults/dot_config/dotfiles/model-registry.json)
|
|
28
|
+
- [prompt-registry.json](../../defaults/dot_config/dotfiles/prompt-registry.json)
|
|
29
29
|
|
|
30
30
|
## Enterprise path
|
|
31
31
|
|
|
@@ -21,6 +21,6 @@ render_with_liquid: false
|
|
|
21
21
|
## Provisioning notes
|
|
22
22
|
|
|
23
23
|
1. Store the SSH signing private key in GitHub Actions as `ACTIONS_BOT_SIGNING_KEY`.
|
|
24
|
-
2. Store the matching public key in [allowed_signers](/
|
|
24
|
+
2. Store the matching public key in [allowed_signers](../../defaults/dot_config/git/allowed_signers.tmpl).
|
|
25
25
|
3. Rotate the key on personnel or workstation change.
|
|
26
26
|
4. Fail closed when secrets are absent.
|
|
@@ -21,9 +21,9 @@ Properties:
|
|
|
21
21
|
|
|
22
22
|
## Policy artifact
|
|
23
23
|
|
|
24
|
-
The source of truth lives in [mcp-policy.json](/
|
|
25
|
-
Approved package pins live in [mcp-lock.json](/
|
|
26
|
-
Tracked server registry entries live in [mcp-registry.json](/
|
|
24
|
+
The source of truth lives in [mcp-policy.json](../../defaults/dot_config/dotfiles/mcp-policy.json).
|
|
25
|
+
Approved package pins live in [mcp-lock.json](../../defaults/dot_config/dotfiles/mcp-lock.json).
|
|
26
|
+
Tracked server registry entries live in [mcp-registry.json](../../defaults/dot_config/dotfiles/mcp-registry.json).
|
|
27
27
|
|
|
28
28
|
Current defaults:
|
|
29
29
|
|
|
@@ -75,4 +75,4 @@ Current approved refs:
|
|
|
75
75
|
- active servers match the tracked registry entries
|
|
76
76
|
- remote HTTP transports are HTTPS and OAuth-backed
|
|
77
77
|
|
|
78
|
-
Policy bundle baselines live in [policy-bundles.json](/
|
|
78
|
+
Policy bundle baselines live in [policy-bundles.json](../../defaults/dot_config/dotfiles/policy-bundles.json).
|
|
@@ -11,7 +11,7 @@ Use this checklist before cutting any new release (e.g., `v0.x.x`) to ensure sup
|
|
|
11
11
|
- [ ] **Pinned Version**: Update `install.sh` `VERSION` variable to match the release tag.
|
|
12
12
|
- [ ] **Docs Sync**: Ensure `README.md` and `.github/PULL_REQUEST_TEMPLATE.md` installer URLs point to the new tag (not `main`).
|
|
13
13
|
- [ ] **Clean Build**: Verify `install.sh` does not curl random scripts from third parties without pinning.
|
|
14
|
-
- [ ] **SOUP Register**: Review [SOUP_REGISTER.md](
|
|
14
|
+
- [ ] **SOUP Register**: Review [SOUP_REGISTER.md](SOUP_REGISTER.md) and confirm all active external components have an owner and validation path.
|
|
15
15
|
|
|
16
16
|
## 2. Secrets & Leak Prevention
|
|
17
17
|
|
|
@@ -12,13 +12,13 @@ Controlled inventory for software of unknown pedigree used by the dotfiles platf
|
|
|
12
12
|
|
|
13
13
|
| Component | Source | Version control | Verification path | Owner | Status |
|
|
14
14
|
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
15
|
-
| Homebrew installer | `raw.githubusercontent.com/Homebrew/install` | Moving upstream script, gated by `HOMEBREW_INSTALLER_SHA256` | SHA-256 in [package_managers.sh](
|
|
15
|
+
| Homebrew installer | `raw.githubusercontent.com/Homebrew/install` | Moving upstream script, gated by `HOMEBREW_INSTALLER_SHA256` | SHA-256 in [package_managers.sh](../../install/lib/package_managers.sh) | Repo maintainer | Conditional |
|
|
16
16
|
| Chezmoi installer | `get.chezmoi.io` | Pinned by `CHEZMOI_INSTALLER_SHA256` when used | SHA-256 in `install/lib/chezmoi.sh` | Repo maintainer | Controlled |
|
|
17
17
|
| GitHub Actions marketplace actions | GitHub Marketplace | Full commit SHA pinning | Workflow `uses:` pins | Repo maintainer | Controlled |
|
|
18
|
-
| Grype container | `anchore/grype` | Pinned tag in workflow | Container tag in [security-enhanced.yml](
|
|
19
|
-
| Trivy container | `aquasec/trivy` | Pinned tag in workflow | Container tag in [security-enhanced.yml](
|
|
18
|
+
| Grype container | `anchore/grype` | Pinned tag in workflow | Container tag in [security-enhanced.yml](../../.github/workflows/security-enhanced.yml) | Repo maintainer | Controlled |
|
|
19
|
+
| Trivy container | `aquasec/trivy` | Pinned tag in workflow | Container tag in [security-enhanced.yml](../../.github/workflows/security-enhanced.yml) | Repo maintainer | Controlled |
|
|
20
20
|
| Checkov action | GitHub Marketplace | Full commit SHA pinning | Workflow `uses:` pin | Repo maintainer | Controlled |
|
|
21
|
-
| Nix inputs | GitHub flakes | Locked in [flake.lock](
|
|
21
|
+
| Nix inputs | GitHub flakes | Locked in [flake.lock](../../flake.lock) | `narHash` and revision lock | Repo maintainer | Controlled |
|
|
22
22
|
| GitHub release metadata queries | GitHub API | Discovery only, not release validation | `update-deps.yml` query path | Repo maintainer | Monitored |
|
|
23
23
|
|
|
24
24
|
## Validation record
|
package/install.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Universal Dotfiles Installer (Zero-Dependency)
|
|
4
5
|
# Usage: bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh)"
|
|
5
6
|
# (or ./install.sh locally)
|
|
@@ -59,7 +60,7 @@ show_help() {
|
|
|
59
60
|
Usage: install.sh [version] [options]
|
|
60
61
|
|
|
61
62
|
Arguments:
|
|
62
|
-
version The version (tag or branch) to install (default: v0.2.
|
|
63
|
+
version The version (tag or branch) to install (default: v0.2.505)
|
|
63
64
|
|
|
64
65
|
Options:
|
|
65
66
|
--help Show this help message
|
|
@@ -75,7 +76,7 @@ EOF
|
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
main() {
|
|
78
|
-
local version="v0.2.
|
|
79
|
+
local version="v0.2.505"
|
|
79
80
|
local version_set=0
|
|
80
81
|
local minimal=0
|
|
81
82
|
local provision="${DOTFILES_PROVISION:-0}"
|
|
@@ -105,7 +106,7 @@ main() {
|
|
|
105
106
|
# like `foobar` doesn't trigger a 30s+ network download attempt.
|
|
106
107
|
# Caught by the install.sh fuzz harness (#881).
|
|
107
108
|
if [[ ! "$arg" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+([-+][a-zA-Z0-9.-]+)?$ ]]; then
|
|
108
|
-
error "Unrecognized positional argument '$arg' — expected a semver version (e.g. v0.2.
|
|
109
|
+
error "Unrecognized positional argument '$arg' — expected a semver version (e.g. v0.2.505)."
|
|
109
110
|
fi
|
|
110
111
|
version="$arg"
|
|
111
112
|
version_set=1
|
|
@@ -350,7 +351,7 @@ main() {
|
|
|
350
351
|
# 6. Initialize & Apply
|
|
351
352
|
step "Applying Configuration..."
|
|
352
353
|
|
|
353
|
-
# ── Auto-migration for v0.2.
|
|
354
|
+
# ── Auto-migration for v0.2.505 reorg ─────────────────────────────────
|
|
354
355
|
# If the user is upgrading from a pre-0.2.503 install, run the
|
|
355
356
|
# migration script BEFORE `chezmoi apply` so the reorg's source-
|
|
356
357
|
# path moves don't cause chezmoi to delete deployed files.
|
|
@@ -359,7 +360,7 @@ main() {
|
|
|
359
360
|
for migrate_src in "$SOURCE_DIR" "$LEGACY_SOURCE_DIR"; do
|
|
360
361
|
migrate_script="$migrate_src/install/migrate/migrate-v0_2-to-v0_2_503.sh"
|
|
361
362
|
if [[ -x "$migrate_script" ]]; then
|
|
362
|
-
echo " Running v0.2.
|
|
363
|
+
echo " Running v0.2.505 migration (idempotent; safe on fresh installs)..."
|
|
363
364
|
"$migrate_script" || echo " migration exited non-zero — continuing apply"
|
|
364
365
|
break
|
|
365
366
|
fi
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebastienrousseau/dotfiles",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.505",
|
|
4
4
|
"description": "The Trusted Shell Platform — Universal dotfiles managed by Chezmoi. Features Bash & Zsh for macOS, Linux & WSL. Rust modern tooling & enterprise-grade security.",
|
|
5
5
|
"main": "install.sh",
|
|
6
6
|
"bin": {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Compat shim: the canonical script moved to tools/ci/ during the repo reorg.
|
|
4
5
|
# Pinned reusable workflows on master still reference the old path;
|
|
5
6
|
# this delegates so they keep working until the next pin bump.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Compat shim: the canonical script moved to tools/ci/ during the repo reorg.
|
|
4
5
|
# Pinned reusable workflows on master still reference the old path;
|
|
5
6
|
# this delegates so they keep working until the next pin bump.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Compat shim: the canonical script moved to tools/ci/ during the repo reorg.
|
|
4
5
|
# Pinned reusable workflows on master still reference the old path;
|
|
5
6
|
# this delegates so they keep working until the next pin bump.
|
package/scripts/demo/record.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Shell Performance Benchmark.
|
|
4
5
|
##
|
|
5
6
|
## Measures shell startup time with per-component profiling. Uses hyperfine
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# =============================================================================
|
|
4
5
|
# drift-dashboard.sh — Consolidated drift report.
|
|
5
6
|
#
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Dotfiles Health Check Dashboard
|
|
4
5
|
# Usage: dot health [--verbose|-v] [--json|-j] [--fix|-f] [--force|-F]
|
|
5
6
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## MCP configuration diagnostics and hardening checks.
|
|
4
5
|
##
|
|
5
6
|
## Validates MCP (Model Context Protocol) server configurations for security
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Shell Performance Profiling
|
|
4
5
|
# Usage: dot perf [--json|-j] [--profile|-p] [--runs|-r N] [--target|-t MS]
|
|
5
6
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Security Score Assessment.
|
|
4
5
|
##
|
|
5
6
|
## Evaluates system security posture across encryption, SSH, Git, system
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Dotfiles post-merge verification checks
|
|
4
5
|
# Runs doctor + status + diff checks and exits non-zero on issues.
|
|
5
6
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Workstation attestation export.
|
|
4
5
|
##
|
|
5
6
|
## Produces a machine-readable evidence record for the current dotfiles
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Dotfiles CLI - Agent Mode Commands (extracted from meta.sh)
|
|
4
5
|
# mode list|current|show|set|run|doctor|card|log|checkpoint|conformance
|
|
5
6
|
|