@sebastienrousseau/dotfiles 0.2.511 → 0.2.513
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 +90 -0
- package/README.md +2 -2
- package/docs/AI.md +2 -1
- package/docs/COPYRIGHT +1 -1
- package/docs/architecture/AI_COST_OPTIMIZATION.md +1 -0
- package/docs/archive/LEGACY_ROADMAP.md +4 -158
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +2 -1
- package/docs/manual/02-tutorials/02-add-wallpaper.md +6 -6
- package/docs/manual/02-tutorials/03-create-profile.md +1 -1
- package/docs/manual/02-tutorials/05-deploy-fleet.md +1 -1
- package/docs/manual/03-reference/02-config-files.md +1 -1
- package/docs/manual/03-reference/03-environment.md +1 -1
- package/docs/manual/04-cookbook/03-faq.md +1 -1
- package/docs/manual/05-appendices/B-security-checklist.md +2 -1
- package/docs/manual/command-index.md +1 -0
- package/docs/operations/ARCHITECTURE_ROADMAP.md +5 -143
- package/docs/operations/COVERAGE.md +30 -8
- package/docs/operations/REGISTRY.md +20 -19
- package/docs/operations/ROADMAP.md +3 -159
- package/docs/operations/ROADMAP_2026.md +5 -663
- package/docs/operations/ROADMAP_V0_2_503.md +5 -129
- package/docs/reference/POWERSHELL_PARITY.md +28 -27
- package/docs/reference/THEMES.md +1 -1
- package/docs/reference/TOOLS.md +1 -0
- package/docs/reference/UTILS.md +1 -0
- package/docs/schema/dot-registry-v1.json +33 -0
- package/docs/security/SCORECARD.md +1 -1
- package/install.sh +20 -11
- package/package.json +1 -1
- package/scripts/diagnostics/a2a-conformance.sh +0 -0
- package/scripts/diagnostics/aliases-manifest.sh +33 -6
- package/scripts/diagnostics/benchmark.sh +27 -1
- package/scripts/diagnostics/doctor.sh +18 -11
- package/scripts/diagnostics/health.sh +12 -4
- package/scripts/diagnostics/mcp-doctor.sh +3 -0
- package/scripts/diagnostics/secret-governance.sh +7 -1
- package/scripts/diagnostics/security-score.sh +14 -5
- package/scripts/diagnostics/verify_state.sh +9 -1
- package/scripts/diagnostics/workstation-attestation.sh +0 -0
- package/scripts/dot/commands/ai.sh +40 -31
- package/scripts/dot/commands/aliases.sh +28 -4
- package/scripts/dot/commands/appearance.sh +16 -0
- package/scripts/dot/commands/core.sh +17 -0
- package/scripts/dot/commands/diagnostics.sh +19 -0
- package/scripts/dot/commands/fleet.sh +1 -1
- package/scripts/dot/commands/manual.sh +4 -4
- package/scripts/dot/commands/meta.sh +87 -12
- package/scripts/dot/commands/registry.sh +164 -15
- package/scripts/dot/commands/secrets.sh +17 -0
- package/scripts/dot/commands/security.sh +17 -0
- package/scripts/dot/commands/tools.sh +19 -0
- package/scripts/dot/powershell/Dot.psm1 +146 -26
- package/scripts/fonts/install-nerd-fonts.sh +16 -10
- package/scripts/git-hooks/pre-commit-audit.sh +1 -1
- package/scripts/ops/ai-setup.sh +13 -6
- package/scripts/ops/bundle.sh +31 -5
- package/scripts/ops/chezmoi-apply.sh +5 -0
- package/scripts/ops/heal-tools.sh +39 -111
- package/scripts/ops/post-apply-repair.sh +0 -0
- package/scripts/ops/release.sh +14 -5
- package/scripts/qa/docs-coverage.sh +1 -1
- package/scripts/qa/reliability-audit.sh +4 -4
- package/scripts/qa/scorecard-snapshot.sh +3 -3
- package/scripts/qa/validate-examples.sh +0 -0
- package/scripts/qa/wsl-contract.sh +0 -0
- package/scripts/secrets/age-init.sh +15 -4
- package/scripts/theme/apply-gnome-theme.sh +6 -2
- package/scripts/theme/extract-theme.py +97 -33
- package/scripts/theme/rebuild-themes.sh +240 -35
- package/scripts/theme/switch.sh +26 -16
- package/scripts/theme/wallpaper-sync.sh +95 -7
- package/scripts/tools/detect-collisions.py +0 -0
- package/scripts/version-sync.sh +108 -44
|
@@ -20,7 +20,9 @@ This page documents the JSON contract and the contribution flow. It is the §3 /
|
|
|
20
20
|
dot registry list # list every published module
|
|
21
21
|
dot registry search rust # filter by keyword
|
|
22
22
|
dot registry info rust-dev-setup # full metadata for one module
|
|
23
|
-
dot registry install rust-dev-setup #
|
|
23
|
+
dot registry install rust-dev-setup # verify and preview changes
|
|
24
|
+
dot registry install rust-dev-setup --yes # verify, persist, and apply
|
|
25
|
+
dot registry installed # list locally installed modules
|
|
24
26
|
dot registry url # show active registry URL
|
|
25
27
|
dot registry set-url <url> # point at a different registry
|
|
26
28
|
```
|
|
@@ -44,44 +46,43 @@ A registry index is a single JSON document:
|
|
|
44
46
|
"version": "1.2.0",
|
|
45
47
|
"tags": ["rust", "language", "dev"],
|
|
46
48
|
"maintainer": "alice@example.com",
|
|
47
|
-
"
|
|
49
|
+
"archive_url": "https://example.com/rust-dev-setup-1.2.0.tar.gz",
|
|
50
|
+
"sha256": "f9a2c1b0a8d27c41b99c8c93641a0d476a0e54b23161847c47c780025ac7c4a1",
|
|
48
51
|
"license": "MIT"
|
|
49
52
|
}
|
|
50
53
|
]
|
|
51
54
|
}
|
|
52
55
|
```
|
|
53
56
|
|
|
54
|
-
Required keys: `name` (kebab-case,
|
|
57
|
+
Required keys: `name` (kebab-case, no more than 32 characters), `description` (no more than 200 characters), `version` (semver), `archive_url` (immutable HTTPS archive), and `sha256` (64 lowercase hexadecimal characters).
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
Optional keys: `repo` (HTTPS project URL), `tags` (lower-case array), `maintainer`, and `license` (SPDX identifier). The machine-readable contract is [`docs/schema/dot-registry-v1.json`](../schema/dot-registry-v1.json).
|
|
57
60
|
|
|
58
61
|
## Contributing a module
|
|
59
62
|
|
|
60
|
-
1. Build
|
|
63
|
+
1. Build a gzip-compressed tar archive containing a chezmoi-source-compatible directory. Publish it at an immutable HTTPS URL, such as a versioned GitHub release asset.
|
|
61
64
|
2. Open a PR against `sebastienrousseau/dotfiles` adding one entry to `docs/registry.json` (alphabetical by `name`).
|
|
62
65
|
3. The PR runs CI checks for:
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
+
- Runtime contract validity and unique, sorted module names.
|
|
67
|
+
- Valid JSON for both the index and its published JSON Schema.
|
|
68
|
+
- A pinned SHA-256 digest for every archive.
|
|
66
69
|
4. Once merged, the GitHub Pages workflow re-deploys the registry; `dot registry list` picks it up within 6 hours (or immediately if the consumer purges the cache).
|
|
67
70
|
|
|
68
|
-
## Install pipeline
|
|
71
|
+
## Install pipeline
|
|
69
72
|
|
|
70
|
-
`dot registry install <name>`
|
|
73
|
+
`dot registry install <name>` is preview-first and does not mutate the workstation. Pass `--yes` only after reviewing the chezmoi dry-run. The installer:
|
|
71
74
|
|
|
72
75
|
1. Resolve the module entry from the registry index.
|
|
73
|
-
2.
|
|
74
|
-
3. Verify the
|
|
75
|
-
4.
|
|
76
|
-
5.
|
|
77
|
-
6.
|
|
78
|
-
|
|
79
|
-
The sandboxed apply (point 6) requires changes to `dot sync` to accept an include filter — that is its own roadmap issue and tracked separately.
|
|
76
|
+
2. Download the versioned archive using HTTPS and TLS 1.2 or newer.
|
|
77
|
+
3. Verify the archive against the registry's SHA-256 digest.
|
|
78
|
+
4. Reject absolute paths, parent traversal, symbolic links, and hard links before extraction.
|
|
79
|
+
5. Run `chezmoi apply --dry-run` against the isolated module source.
|
|
80
|
+
6. With `--yes`, persist it at `${XDG_DATA_HOME:-~/.local/share}/dotfiles/modules/<name>/<version>` and apply that exact verified source.
|
|
80
81
|
|
|
81
82
|
## Security model
|
|
82
83
|
|
|
83
|
-
- Modules execute with the consumer's user privileges via chezmoi
|
|
84
|
-
-
|
|
84
|
+
- Modules execute with the consumer's user privileges via chezmoi scripts. Review the default dry-run and publisher before passing `--yes`.
|
|
85
|
+
- The SHA-256 pin binds installation to the reviewed archive bytes, even if the hosting release later changes.
|
|
85
86
|
- The registry index itself is fetched over HTTPS; the GitHub Pages cert chain provides transport integrity.
|
|
86
87
|
|
|
87
88
|
## Why this lives in this repo (for now)
|
|
@@ -4,163 +4,7 @@ render_with_liquid: false
|
|
|
4
4
|
|
|
5
5
|
# Roadmap
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The canonical roadmap is [`../../ROADMAP.md`](../../ROADMAP.md).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Reproducibility
|
|
12
|
-
|
|
13
|
-
**Goal:** "Reproducible Shell Environments".
|
|
14
|
-
> *This distribution aims for deterministic rebuilds: the same tag yields the same environment across machines.*
|
|
15
|
-
|
|
16
|
-
- [ ] **Pinned Formulae**: Strict version locking for Homebrew bundle and Apt packages.
|
|
17
|
-
- [ ] **Binary Locking**: Future versions may replace bootstrap download helpers with checksum-verified artifacts once a portable verification strategy is finalized.
|
|
18
|
-
- [ ] **State Capture**: `chezmoi` templates that capture host-specific state for idempotence.
|
|
19
|
-
- [ ] **Manifests**: Optional `Brewfile.lock` or equivalent for Linux.
|
|
20
|
-
- [ ] **Cloud-Init (Phase 28)**: Generate `user-data` scripts for AWS/GCP bootstrapping.
|
|
21
|
-
- [ ] **Container Native (Phase 28)**: Base Docker image for devcontainers.
|
|
22
|
-
- [ ] **Terraform Provider (Phase 28)**: Custom provider to provision dotfiles state.
|
|
23
|
-
|
|
24
|
-
## Observability
|
|
25
|
-
|
|
26
|
-
**Goal:** "Observable Shell Lifecycle".
|
|
27
|
-
> *The shell is instrumented: failures, timing, and lifecycle events are visible by design.*
|
|
28
|
-
|
|
29
|
-
- [x] **Audit Structuring**: JSON-structured logging for bootstrap and provisioning events.
|
|
30
|
-
- [x] **Debug Modes**: First-class support for `DOTFILES_DEBUG=1` and `DOTFILES_TRACE=1`.
|
|
31
|
-
- [x] **Telemetry (Local)**: Granular startup timing breakdown via `dot perf`.
|
|
32
|
-
- [ ] **Health Dashboard (Phase 39)**: CLI view of system "health" metrics.
|
|
33
|
-
- [ ] **System Status (Phase 39)**: Real-time resource usage, battery, and network stats.
|
|
34
|
-
- [ ] **Update Manager (Phase 39)**: Visual interface for tool updates and migration.
|
|
35
|
-
|
|
36
|
-
## Secrets
|
|
37
|
-
|
|
38
|
-
**Goal:** "Explicit Secrets Model".
|
|
39
|
-
> *Secrets are never committed; sensitive state is encrypted or host-local by default.*
|
|
40
|
-
|
|
41
|
-
- [x] **Secret Driver**: Native integration with 1Password/Bitwarden CLI via `chezmoi`.
|
|
42
|
-
- [x] **Encryption**: Promoted use of `age` encryption for all private config files.
|
|
43
|
-
- [ ] **Leak Prevention (Phase 29)**: Pre-commit hooks (TruffleHog/Gitleaks) for high-entropy detection.
|
|
44
|
-
- [ ] **Vault Integration (Phase 29)**: Native HashiCorp Vault support.
|
|
45
|
-
- [ ] **Hardware Enclaves (Phase 29)**: Support for Secure Enclave/TPM key storage.
|
|
46
|
-
- [ ] **OIDC Auth (Phase 29)**: Keyless authentication via GitHub OIDC.
|
|
47
|
-
|
|
48
|
-
## Toolchain
|
|
49
|
-
|
|
50
|
-
**Goal:** "Composable Shell Layers".
|
|
51
|
-
> *The distribution is layered: core safety is mandatory, advanced features are opt-in.*
|
|
52
|
-
|
|
53
|
-
- [ ] **Core Layer**: XDG, PATH, Safety (`set -euo pipefail`). (Zero external deps).
|
|
54
|
-
- [ ] **UX Layer**: Prompt (Starship), Aliases, Completions.
|
|
55
|
-
- [ ] **Toolchain Layer**: Rust replacements (`eza`, `bat`, `ripgrep`).
|
|
56
|
-
- [ ] **Cross-Compiler Toolchain (Phase 34)**:
|
|
57
|
-
- [ ] **Multi-Arch**: `qemu-user-static` for ARM64/AMD64.
|
|
58
|
-
- [ ] **Wasm Target**: WebAssembly toolchain setup.
|
|
59
|
-
- [ ] **Embedded Dev**: Presets for Arduino/ESP32.
|
|
60
|
-
|
|
61
|
-
## Opt-in features
|
|
62
|
-
|
|
63
|
-
**Goal:** "Explicit Feature Flags".
|
|
64
|
-
> *Advanced features are gated behind explicit opt-in flags.*
|
|
65
|
-
|
|
66
|
-
- [ ] **Feature Toggles**: Environment variables (e.g., `ENABLE_AI=0`, `ENABLE_HISTORY_SYNC=0`).
|
|
67
|
-
- [ ] **Lazy Loading**: Strict lazy-loading for all non-core plugins.
|
|
68
|
-
- [ ] **Plugin Ecosystem (Phase 35)**:
|
|
69
|
-
- [ ] **Module Registry**: Public index of dotfiles modules.
|
|
70
|
-
- [ ] **Dependency Solving**: Semantic versioning for modules.
|
|
71
|
-
- [ ] **Verified Publishers**: Cryptographic signing for "Official" modules.
|
|
72
|
-
|
|
73
|
-
## Safety
|
|
74
|
-
|
|
75
|
-
**Goal:** "Documented Threat Model".
|
|
76
|
-
> *Security decisions are driven by an explicit, documented threat model.*
|
|
77
|
-
|
|
78
|
-
- [x] **Threat Model Doc**: A lightweight document defining the trust boundary (Local Machine). See `docs/security/THREAT_MODEL.md`.
|
|
79
|
-
- [ ] **Supply Chain**: Verification steps for upstream dependencies.
|
|
80
|
-
- [ ] **Identity & Access (Phase 40)**:
|
|
81
|
-
- [ ] **SSH Certs**: Short-lived SSH Certificates.
|
|
82
|
-
- [ ] **YubiKey Bio**: Biometric enforcement for `sudo`.
|
|
83
|
-
- [ ] **PAM Modules**: Custom auth modules.
|
|
84
|
-
- [ ] **Auditd Rules**: Pre-configured audit rules.
|
|
85
|
-
|
|
86
|
-
## Validation
|
|
87
|
-
|
|
88
|
-
**Goal:** "Self-Validating Environment".
|
|
89
|
-
> *The environment can validate itself after installation or update.*
|
|
90
|
-
|
|
91
|
-
- [x] **Smoke Tests**: Automated verification of key aliases (`ls`, `git`, `docker`).
|
|
92
|
-
- [x] **CI Validation**: GitHub Actions workflow to boot and verify the shell syntax.
|
|
93
|
-
- [x] **Chaos Engineering (Phase 41)**:
|
|
94
|
-
- [ ] **Config Chaos**: Randomly corrupt config files to test recovery.
|
|
95
|
-
- [ ] **Network Simulation**: Simulate high latency/packet loss.
|
|
96
|
-
- [ ] **Permission Fuzzing**: Verify strict umask behavior.
|
|
97
|
-
|
|
98
|
-
## Distribution
|
|
99
|
-
|
|
100
|
-
**Goal:** "Supported Platforms Matrix".
|
|
101
|
-
> *Only listed platforms are guaranteed to work; others are best-effort.*
|
|
102
|
-
|
|
103
|
-
- [x] **Support Matrix**: Explicit table of OS/Version support. See `docs/reference/SUPPORT_MATRIX.md`.
|
|
104
|
-
- [ ] **Windows Deep Integration (Phase 53)**:
|
|
105
|
-
- [ ] **PowerShell Profile**: Mirror Zsh functionality.
|
|
106
|
-
- [ ] **WinGet**: Declarative package management.
|
|
107
|
-
- [ ] **WSL Bridge**: Seamless interop.
|
|
108
|
-
- [ ] **Linux Deep Integration (Phase 55)**:
|
|
109
|
-
- [x] **Systemd User Units**: User service management.
|
|
110
|
-
- [ ] **Desktop Envs**: GNOME/KDE/Sway configs.
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Future
|
|
115
|
-
|
|
116
|
-
### Domain-Specific Environments
|
|
117
|
-
|
|
118
|
-
- [ ] **Data Science (Phase 38)**: Conda/Mamba, GPU Config, Jupyter.
|
|
119
|
-
- [ ] **Network Topologies (Phase 56)**: Mesh Networks, Tor, Private VPNs.
|
|
120
|
-
- [ ] **Build Systems (Phase 57)**: Bazel, Maven/Gradle, CMake.
|
|
121
|
-
- [ ] **Financial Operations (Phase 63)**: Cost CLI, Ledger, Stock Tickers.
|
|
122
|
-
- [ ] **Game Development (Phase 64)**: Unity/Unreal CLI, Godot, Blender.
|
|
123
|
-
- [ ] **Scientific Computing (Phase 68)**: Latex, R/Julia, Pandoc.
|
|
124
|
-
- [ ] **Quantum Computing (Phase 69)**: Qiskit, Simulators.
|
|
125
|
-
- [ ] **Bio-Informatics (Phase 70)**: Genomics, PDB, FASTA.
|
|
126
|
-
|
|
127
|
-
### Enterprise & Operations
|
|
128
|
-
|
|
129
|
-
- [ ] **Collaborations (Phase 45)**: Pair Programming, Team Sync, ChatOps.
|
|
130
|
-
- [ ] **Database DevOps (Phase 46)**: DB Clients, Local Docker DBs, Migrations.
|
|
131
|
-
- [ ] **Serverless (Phase 47)**: Lambda, Edge Workers, Wasm.
|
|
132
|
-
- [ ] **Enterprise Fleet (Phase 30)**: MDM Profiles, Policy as Code.
|
|
133
|
-
- [ ] **Legal & Procurement (Phase 93)**: RFP Templates, Vendor Management.
|
|
134
|
-
- [ ] **Recruiting & HR (Phase 94)**: Resume Generators, coding interview sets.
|
|
135
|
-
|
|
136
|
-
### Accessibility & Legacy
|
|
137
|
-
|
|
138
|
-
- [ ] **Accessibility (Phase 36)**: Screen Reader optimization, High Contrast.
|
|
139
|
-
- [ ] **Legacy Modernization (Phase 42)**: Mainframe/Unix support, PowerShell Core.
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## Completed
|
|
144
|
-
|
|
145
|
-
### Core Foundations
|
|
146
|
-
|
|
147
|
-
- [x] **Universal Config (Chezmoi) (Phase 1)**
|
|
148
|
-
- [x] **Shell Environment (Phase 2)**
|
|
149
|
-
- [x] **Tool Modernization (Phase 3)**
|
|
150
|
-
- [x] **Performance Optimization (Phase 4)**
|
|
151
|
-
|
|
152
|
-
### Hardened Security
|
|
153
|
-
|
|
154
|
-
- [x] **Security & Validation (Phase 5)**
|
|
155
|
-
- [x] **Package Management (Phase 6)**
|
|
156
|
-
- [x] **Hardened Security (Phase 21)**
|
|
157
|
-
- [x] **Enterprise Core (Phase 23)**: SLSA, SBOM, Signed Releases.
|
|
158
|
-
- [x] **Legal & Licensing (Phase 92)**: FOSSology, Headers, CLA.
|
|
159
|
-
|
|
160
|
-
### Experience
|
|
161
|
-
|
|
162
|
-
- [x] **Documentation (Phase 25)**: DocSite, Interactive Tour.
|
|
163
|
-
- [x] **Self-Healing (Phase 27)**: Doctor, Auto-Repair.
|
|
164
|
-
- [x] **OS Bundling (Phase 26)**: XDG Compliance, Vendor Hooks.
|
|
165
|
-
- [x] **Predictive Shell (Phase 32)**: Autosuggest, Local LLM.
|
|
166
|
-
- [x] **Visual Layer (Phase 34)**: Yazi, Zellij, Ghostty.
|
|
9
|
+
This file is retained only so existing documentation links continue to resolve.
|
|
10
|
+
Do not add active planning content here.
|