@sebastienrousseau/dotfiles 0.2.519 → 0.2.520
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 +182 -0
- package/README.md +1163 -163
- package/docs/ARCHITECTURE.md +117 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/ECOSYSTEM.md +220 -0
- package/docs/GOLD-STANDARD-AUDIT.md +352 -0
- package/docs/GOVERNANCE.md +1 -1
- package/docs/MAINTAINERS.md +1 -1
- package/docs/MINIMUM-TOOLCHAIN.md +100 -0
- package/docs/README.md +1 -1
- package/docs/STRUCTURE.md +1 -1
- package/docs/architecture/ARCHITECTURE.md +11 -108
- package/docs/architecture/REPO_LAYOUT.md +3 -3
- package/docs/guides/MACOS_ICLOUD_SYMLINKS.md +121 -0
- package/docs/index.md +3 -3
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/03-reference/01-dot-cli.md +28 -3
- package/docs/manual/command-index.md +24 -4
- package/docs/manual/concept-index.md +2 -0
- package/docs/migration/README.md +81 -0
- package/docs/migration/from-bare-git-repo.md +156 -0
- package/docs/migration/from-gnu-stow.md +165 -0
- package/docs/migration/from-plain-chezmoi.md +148 -0
- package/docs/migration/from-yadm.md +187 -0
- package/docs/operations/PERFORMANCE_BUDGETS.md +196 -0
- package/docs/operations/REGISTRY.md +1 -1
- package/docs/operations/RELEASE_PIPELINE.md +4 -4
- package/docs/operations/TESTING.md +3 -3
- package/docs/operations/TRACEABILITY.md +1 -0
- package/docs/packaging.md +222 -0
- package/docs/reference/FEATURE-MATRIX.md +646 -0
- package/docs/reference/TOOLS.md +1 -1
- package/docs/reference/UTILS.md +1 -0
- package/docs/security/COMPLIANCE.md +1 -1
- package/docs/security/DISCLOSURE.md +4 -4
- package/docs/security/FUZZING.md +113 -18
- package/docs/security/KEY_ROTATION.md +1 -1
- package/docs/security/SCORECARD.md +3 -3
- package/docs/security/VERIFY_RELEASE.md +2 -2
- package/install.sh +6 -6
- package/package.json +2 -2
- package/scripts/ci/check-copyright-headers.sh +1 -1
- package/scripts/ci/check-shell-preamble.sh +1 -1
- package/scripts/ci/guard-gitleaks-checkout.sh +1 -1
- package/scripts/demo/record.sh +1 -1
- package/scripts/diagnostics/a2a-conformance.sh +1 -1
- package/scripts/diagnostics/alias-governance.sh +30 -3
- package/scripts/diagnostics/aliases-cheatsheet.sh +1 -1
- package/scripts/diagnostics/aliases-manifest.sh +1 -1
- package/scripts/diagnostics/attest-verify.sh +147 -0
- package/scripts/diagnostics/benchmark.sh +1 -1
- package/scripts/diagnostics/conflicts.sh +1 -1
- package/scripts/diagnostics/doctor-unified.sh +6 -2
- package/scripts/diagnostics/doctor.sh +56 -10
- package/scripts/diagnostics/drift-dashboard.sh +3 -2
- package/scripts/diagnostics/health.sh +43 -10
- package/scripts/diagnostics/history-analysis.sh +1 -1
- package/scripts/diagnostics/mcp-doctor.sh +2 -2
- package/scripts/diagnostics/perf.sh +1 -1
- package/scripts/diagnostics/scorecard.sh +3 -2
- package/scripts/diagnostics/secret-governance.sh +1 -1
- package/scripts/diagnostics/security-score.sh +1 -1
- package/scripts/diagnostics/smoke-test.sh +1 -1
- package/scripts/diagnostics/snapshot.sh +1 -1
- package/scripts/diagnostics/verify.sh +1 -1
- package/scripts/diagnostics/verify_state.sh +1 -1
- package/scripts/diagnostics/version-locks.sh +1 -1
- package/scripts/diagnostics/workstation-attestation.sh +26 -1
- package/scripts/dot/commands/agent.sh +64 -14
- package/scripts/dot/commands/agents.sh +24 -8
- package/scripts/dot/commands/ai.sh +20 -7
- package/scripts/dot/commands/aliases.sh +1 -1
- package/scripts/dot/commands/appearance.sh +1 -1
- package/scripts/dot/commands/completion.sh +42 -5
- package/scripts/dot/commands/core.sh +1 -1
- package/scripts/dot/commands/diagnostics.sh +1 -1
- package/scripts/dot/commands/env-emit.sh +1 -1
- package/scripts/dot/commands/fleet.sh +41 -18
- package/scripts/dot/commands/init.sh +1 -1
- package/scripts/dot/commands/lint.sh +1 -1
- package/scripts/dot/commands/manual.sh +1 -1
- package/scripts/dot/commands/meta.sh +115 -10
- package/scripts/dot/commands/patterns.sh +1 -1
- package/scripts/dot/commands/registry.sh +43 -7
- package/scripts/dot/commands/restore.sh +1 -1
- package/scripts/dot/commands/secrets.sh +1 -1
- package/scripts/dot/commands/security.sh +1 -1
- package/scripts/dot/commands/tools.sh +21 -7
- package/scripts/fonts/install-nerd-fonts.sh +1 -1
- package/scripts/fonts/patch-fonts.sh +1 -1
- package/scripts/git-hooks/install.sh +1 -1
- package/scripts/git-hooks/pre-commit-audit.sh +2 -2
- package/scripts/lib/secrets_provider.sh +19 -4
- package/scripts/nvim/headless-upgrade.lua +81 -0
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +1 -1
- package/scripts/ops/chaos.sh +1 -1
- package/scripts/ops/chezmoi-apply.sh +1 -1
- package/scripts/ops/chezmoi-diff.sh +1 -1
- package/scripts/ops/chezmoi-remove.sh +3 -3
- package/scripts/ops/chezmoi-update.sh +6 -2
- package/scripts/ops/heal-chezmoi.sh +1 -1
- package/scripts/ops/heal-system.sh +1 -1
- package/scripts/ops/heal-tools.sh +1 -1
- package/scripts/ops/heal.sh +1 -1
- package/scripts/ops/post-apply-repair.sh +1 -1
- package/scripts/ops/prewarm.sh +1 -1
- package/scripts/ops/release.sh +1 -1
- package/scripts/ops/rollback.sh +11 -2
- package/scripts/ops/setup.sh +1 -1
- package/scripts/ops/teleport.sh +1 -1
- package/scripts/qa/check-feature-matrix.sh +296 -0
- package/scripts/qa/check-version-consistency.sh +7 -119
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +9 -3
- package/scripts/qa/examples-coverage.sh +1 -1
- package/scripts/qa/reliability-audit.sh +1 -1
- package/scripts/qa/scorecard-snapshot.sh +1 -1
- package/scripts/qa/traceability-coverage.sh +9 -2
- package/scripts/qa/validate-examples.sh +66 -3
- package/scripts/qa/wsl-contract.sh +1 -1
- package/scripts/secrets/age-init.sh +1 -1
- package/scripts/secrets/create-secrets-file.sh +1 -1
- package/scripts/secrets/encrypt-ssh-key.sh +1 -1
- package/scripts/security/backup.sh +1 -1
- package/scripts/security/check-disclosure-key-expiry.sh +1 -1
- package/scripts/security/dns-doh.sh +1 -1
- package/scripts/security/encryption-check.sh +1 -1
- package/scripts/security/enforce-policies.sh +315 -98
- package/scripts/security/firewall.sh +1 -1
- package/scripts/security/lock-configs.sh +1 -1
- package/scripts/security/lock-screen.sh +1 -1
- package/scripts/security/manage-secrets.sh +1 -1
- package/scripts/security/ssh-cert.sh +1 -1
- package/scripts/security/telemetry-kill.sh +1 -1
- package/scripts/security/usb-safety.sh +1 -1
- package/scripts/theme/apply-gnome-theme.sh +1 -1
- package/scripts/theme/extract-heic-frames.sh +1 -1
- package/scripts/theme/extract-theme.py +284 -6
- package/scripts/theme/install-boot-logo.sh +1 -1
- package/scripts/theme/install-catppuccin-themes.sh +1 -1
- package/scripts/theme/install-cursors.sh +1 -1
- package/scripts/theme/install-file-icons.sh +1 -1
- package/scripts/theme/install-grub-theme.sh +1 -1
- package/scripts/theme/install-lock-icon.sh +1 -1
- package/scripts/theme/merge-wallpaper.sh +1 -1
- package/scripts/theme/rebuild-themes.sh +64 -5
- package/scripts/theme/switch.sh +46 -19
- package/scripts/theme/wallpaper-rotate.sh +1 -1
- package/scripts/theme/wallpaper-sync.sh +1 -1
- package/scripts/tools/cmatrix.sh +1 -1
- package/scripts/tools/detect-collisions.py +1 -1
- package/scripts/tools/emoji-picker.sh +1 -1
- package/scripts/tools/figlet-banner.sh +1 -1
- package/scripts/tools/log-rotate.sh +1 -1
- package/scripts/tools/lolcat-wrap.sh +1 -1
- package/scripts/tools/pipes.sh +1 -1
- package/scripts/tuning/linux.sh +1 -1
- package/scripts/tuning/macos.sh +1 -1
- package/scripts/uninstall.sh +1 -1
- package/scripts/verify-release-versions +156 -0
- package/scripts/version-sync.sh +63 -3
- package/LICENSE +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -2,8 +2,188 @@
|
|
|
2
2
|
|
|
3
3
|
This file documents all notable changes to this project.
|
|
4
4
|
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
## v0.2.520 — 2026-09-13
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `docs/guides/MACOS_ICLOUD_SYMLINKS.md`, documenting what the hook does, the
|
|
12
|
+
cases it refuses, and how to resolve each one by hand.
|
|
13
|
+
- A safety regression suite and a unit suite for the hook, covering the refusal
|
|
14
|
+
paths that the destructive version never had.
|
|
15
|
+
- Performance budgets for the shell startup path, with the budget table and its
|
|
16
|
+
rationale in `docs/operations/PERFORMANCE_BUDGETS.md`.
|
|
17
|
+
- A gate-integrity regression test asserting that the safety checks cannot be
|
|
18
|
+
disabled without a test failing.
|
|
19
|
+
- `dot mcp serve` — a real stdio Model Context Protocol server, where the
|
|
20
|
+
published card had previously described one that did not exist. Full
|
|
21
|
+
lifecycle with version negotiation across three protocol revisions,
|
|
22
|
+
`tools/list`, `tools/call`, resources and logging, with proper JSON-RPC
|
|
23
|
+
error objects. All four tools are read-only and run from closed argument
|
|
24
|
+
vectors without a shell; the mutating operations are deliberately
|
|
25
|
+
unreachable. Go, standard library only.
|
|
26
|
+
- A feature matrix covering every routable command, flag, environment
|
|
27
|
+
variable and config key, each row naming the regression test, benchmark,
|
|
28
|
+
example and manual section that covers it. The gate fails when a command
|
|
29
|
+
gains no row, or when a row names a test or example that does not exist,
|
|
30
|
+
so coverage cannot be claimed in the table without being written.
|
|
31
|
+
- `dot attest --verify` (`--json|-j`, `--max-age|-a`): checks a workstation
|
|
32
|
+
evidence record against the attestation policy by running `lib/wasm-tools`
|
|
33
|
+
as WebAssembly under `wasmtime`. The module gets stdin, stdout and a clock
|
|
34
|
+
and nothing else — no filesystem, no network, no environment — so the
|
|
35
|
+
verdict does not depend on the tools installed on the machine under review.
|
|
36
|
+
Eleven checks cover evidence freshness, the required identity fields, the
|
|
37
|
+
git signing configuration, the agent profile and MCP health.
|
|
38
|
+
- `scripts/diagnostics/attest-verify.sh`, the caller behind that flag: it
|
|
39
|
+
resolves the module and the runtime, builds the module on demand when a
|
|
40
|
+
Rust toolchain is present, and forwards an evidence file, a pipe, or a
|
|
41
|
+
fresh `dot attest --json`.
|
|
42
|
+
- `dot-sys` gained a real `wasm32-wasip1` target, a general JSON reader
|
|
43
|
+
(`dot_sys::json`), an RFC 3339 UTC parser (`dot_sys::time`), the policy
|
|
44
|
+
itself (`dot_sys::attest`), a `verify` subcommand, `--help` and
|
|
45
|
+
`--version`, two more fuzz targets (`fuzz_json`, `fuzz_verify`), a fourth
|
|
46
|
+
example, a second benchmark suite, and `tests/wasm.rs`, which executes the
|
|
47
|
+
built module in a runtime rather than merely inspecting the artefact.
|
|
48
|
+
- `rust.yml` gained a `wasm` job: clippy for the target, a build, an
|
|
49
|
+
execution assertion, the WebAssembly integration tests, the shell caller's
|
|
50
|
+
test, and the `.wasm` uploaded as an artefact.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Bash line coverage went from 59% to **98.14%**. Roughly half of that came
|
|
55
|
+
from fixing the measurement rather than adding tests: untraceable lines sat
|
|
56
|
+
in the denominator, 540 of 706 test files discarded their traces through
|
|
57
|
+
`2>&1`, silent timeout kills were counted as passes, and the sweep's `PS4`
|
|
58
|
+
truncated at 100 characters so the figure depended on how long your checkout
|
|
59
|
+
path was. Correcting those alone moved it 59.36% to 72.29% with no new test
|
|
60
|
+
written. Both Go modules are at 100%, where fuzzing found four defects.
|
|
61
|
+
- The terminal palette now takes more than one colour from the wallpaper.
|
|
62
|
+
`term.bg` had two distinct values across all 228 themes; it now has 36, and
|
|
63
|
+
the status bar carries a secondary and tertiary alongside the accent. The
|
|
64
|
+
background is *tinted* rather than replaced — lightness is unchanged, so the
|
|
65
|
+
low-eye-strain surface the engine was built around is preserved, and
|
|
66
|
+
`DOTFILES_TERM_TINT=0` restores the flat neutrals.
|
|
67
|
+
- Rust is no longer managed by mise. Its plugin exports `RUSTUP_TOOLCHAIN`,
|
|
68
|
+
which silently overrides `rust-toolchain.toml` in every project — a
|
|
69
|
+
repository pinned to 1.98.0 was being built with 1.97.1, and a local "all
|
|
70
|
+
green" said nothing about CI. rustup governs instead, so each project's own
|
|
71
|
+
pin is honoured.
|
|
72
|
+
- `~/.cargo/config.toml` no longer sets a global `target-dir`. Cargo takes an
|
|
73
|
+
exclusive lock on it, so every repository sharing one path serialised: a
|
|
74
|
+
build in one project blocked `cargo test` in another, and cargo prints
|
|
75
|
+
nothing while it waits, so it read as a hang. sccache recovers the shared
|
|
76
|
+
dependency cache without the lock.
|
|
77
|
+
- mise's tool directories are promoted above Homebrew and the shims on `PATH`,
|
|
78
|
+
fused into the existing dedup pass rather than added as a second walk.
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
|
|
82
|
+
- AI provider dispatch now uses the installed CLIs' prompt modes; OpenCode
|
|
83
|
+
installs through its native mise backend. Noninteractive status checks no
|
|
84
|
+
longer open terminal pickers. Reviewed upstream installer checksums are refreshed.
|
|
85
|
+
- Ollama prompts and interactive chat default to `qwen3.5:4b`; set
|
|
86
|
+
`DOTFILES_OLLAMA_MODEL` to select another downloaded model.
|
|
87
|
+
- Neovim configures the current Treesitter and mason-lspconfig APIs, preserves
|
|
88
|
+
custom debugger configurations, and uses Mason's Python debug adapter.
|
|
89
|
+
- Health checks recognize named SSH key pairs and the configured age identity;
|
|
90
|
+
doctor includes Codex and reports absent optional AI providers as information.
|
|
91
|
+
- Homebrew's rustup is available in the shared shell and Fish paths. Go uses
|
|
92
|
+
its system temporary directory instead of a potentially missing custom directory.
|
|
93
|
+
- Terminal test fixtures explicitly control `NO_COLOR`.
|
|
94
|
+
|
|
95
|
+
- `dot doctor`, `dot health`, `dot fleet`, the scorecard and the drift dashboard
|
|
96
|
+
no longer report permanent drift on macOS. The iCloud symlink hook is a
|
|
97
|
+
`run_before_` script that chezmoi lists as pending on every apply by design,
|
|
98
|
+
which made plain `chezmoi verify` exit 1 and every `chezmoi status` line
|
|
99
|
+
count read 1 on a fully synchronised machine. Those callers now pass
|
|
100
|
+
`--exclude=always`; files, directories, symlinks and `run_once`/`run_onchange`
|
|
101
|
+
scripts still count as drift.
|
|
102
|
+
- markdown-preview.nvim no longer blocks `dot upgrade`'s plugin sync. Its build
|
|
103
|
+
step ran `cd app && npm install`, which rewrote the upstream `app/yarn.lock`
|
|
104
|
+
on every build and left the checkout dirty, so Lazy refused to update it.
|
|
105
|
+
The spec now uses upstream's `mkdp#util#install`, which downloads the
|
|
106
|
+
prebuilt preview server and leaves the checkout untouched.
|
|
107
|
+
|
|
108
|
+
- Replaced the destructive mechanism behind the macOS iCloud symlink hook. The
|
|
109
|
+
previous implementation could remove real content from `~/Documents` and
|
|
110
|
+
`~/Desktop`; the replacement only ever removes an empty directory, refuses to
|
|
111
|
+
act on a non-empty one, and leaves an existing correct symlink untouched.
|
|
112
|
+
- Reported what it declined to do, and why, instead of failing silently.
|
|
113
|
+
- The health-probe record no longer claims `"engine": "wasm"` when it was
|
|
114
|
+
produced by a host binary. `ENGINE` is now `cfg`-selected, so the field
|
|
115
|
+
states where the bytes were actually computed: `wasm` from the module,
|
|
116
|
+
`native` from the host build. This is what makes the field evidence rather
|
|
117
|
+
than a label, and both halves are asserted in CI.
|
|
118
|
+
- Corrected the documentation that described `lib/wasm-tools` as vendored
|
|
119
|
+
third-party tooling or as "not actually WebAssembly": `docs/ECOSYSTEM.md`,
|
|
120
|
+
`docs/architecture/REPO_LAYOUT.md`, `docs/STRUCTURE.md`,
|
|
121
|
+
`docs/ARCHITECTURE.md`, `docs/reference/TOOLS.md` and `REUSE.toml`.
|
|
122
|
+
- `workbench.colorTheme` had been commented out on every machine this was
|
|
123
|
+
ever applied to. A template newline was chomped, welding the setting onto
|
|
124
|
+
the comment above it. Two thirds of the theme labels also named themes no
|
|
125
|
+
extension registers — "Tokyonight Mocha" and "Everforest Latte", where
|
|
126
|
+
Mocha and Latte are Catppuccin flavours rather than a general dark/light
|
|
127
|
+
suffix. The editor is now pinned to Catppuccin, and the icon theme ids are
|
|
128
|
+
the ones the extension actually declares.
|
|
129
|
+
- Twelve documented defects, each with a regression test proven to fail
|
|
130
|
+
against the unfixed code first: `dot theme set` aborting before its picker,
|
|
131
|
+
`dot fleet namespace set` reporting success while writing nothing,
|
|
132
|
+
`dot agent delegate` requiring a GNU `timeout` absent from stock macOS, a
|
|
133
|
+
registry cache keyed by path so changing the URL served a stale index for
|
|
134
|
+
six hours, and `dot doctor --audit` routing to a script not in the tree.
|
|
135
|
+
Two of the reported findings turned out to be wrong, and correcting them
|
|
136
|
+
was more useful than fixing them.
|
|
137
|
+
- `chezmoi apply` no longer silently discards edits made directly in `$HOME`.
|
|
138
|
+
Local drift is captured into the source instead of overwritten.
|
|
139
|
+
- macOS home folders (`~/Desktop`, `~/Documents`, `~/Public` and the rest) are
|
|
140
|
+
excluded from chezmoi management entirely, as a second layer beneath the
|
|
141
|
+
iCloud hook's own refusals.
|
|
142
|
+
- `docs-coverage.sh` and `traceability-coverage.sh` stopped masking their own
|
|
143
|
+
exit codes, so a failing gate now fails.
|
|
144
|
+
- `dot benchmark` is routed. Every layer but the router already had it.
|
|
145
|
+
- `dot upgrade` no longer hangs on a question nobody can see. Each phase's
|
|
146
|
+
output is captured to a log, so when `chezmoi update` met a locally edited
|
|
147
|
+
managed file it asked "has changed since chezmoi last wrote it?" on the
|
|
148
|
+
terminal's tty while the run looked merely slow. The step runner now closes
|
|
149
|
+
stdin and passes `--no-tty`, so the prompt fails fast, the step is marked
|
|
150
|
+
failed, and the surfaced tail names the fix (`chezmoi apply` to choose per
|
|
151
|
+
file, or `chezmoi update --force`).
|
|
152
|
+
- `dot upgrade`'s Neovim phase actually syncs plugins. `nvim -l` does not
|
|
153
|
+
load `init.lua`, so `scripts/nvim/headless-upgrade.lua` never found
|
|
154
|
+
lazy.nvim and logged "skipping plugin update" on every run. The phase now
|
|
155
|
+
passes `-u` with the user's `init.lua` (honouring `XDG_CONFIG_HOME` and
|
|
156
|
+
`NVIM_APPNAME`) ahead of `-l`, and reports a visible skip when there is no
|
|
157
|
+
config to load.
|
|
158
|
+
- `dot doctor` no longer warns about a missing `cargo-install-update` on a
|
|
159
|
+
machine that has no `cargo` for it to run through; the check now reports
|
|
160
|
+
"not needed" there and keeps warning where a Rust toolchain is present.
|
|
161
|
+
|
|
5
162
|
## v0.2.519 — 2026-08-13
|
|
6
163
|
|
|
164
|
+
### Added
|
|
165
|
+
|
|
166
|
+
- Implemented the Model Context Protocol server the discovery card has always
|
|
167
|
+
advertised. `dot mcp serve` now speaks JSON-RPC 2.0 over newline-delimited
|
|
168
|
+
frames on stdin/stdout: `initialize`, `initialized`, `ping`, `tools/list`,
|
|
169
|
+
`tools/call`, `resources/list`, `resources/read`,
|
|
170
|
+
`resources/templates/list`, `logging/setLevel`, and a clean shutdown on EOF.
|
|
171
|
+
It is a third Go module, `defaults/dot_local/share/dot-mcp`, deployed to
|
|
172
|
+
`~/.local/bin/dot-mcp`.
|
|
173
|
+
- Served four read-only tools — `mcp-doctor`, `agent-mode`,
|
|
174
|
+
`workstation-attestation` and `fleet-status` — each a fixed `dot` argument
|
|
175
|
+
vector run without a shell, and five read-only resources covering the MCP
|
|
176
|
+
policy, the MCP registry, the agent profiles and both discovery cards.
|
|
177
|
+
Mutating paths are deliberately not exposed.
|
|
178
|
+
|
|
179
|
+
### Changed
|
|
180
|
+
|
|
181
|
+
- Corrected `.well-known/mcp/server-card.json` to describe the server that now
|
|
182
|
+
exists: the stdio transport is `dot mcp serve` rather than the one-shot
|
|
183
|
+
`dot mcp --strict --json` audit, and the declared tools, resources and
|
|
184
|
+
capabilities are pinned to the running registry by tests that fail in both
|
|
185
|
+
directions. `entrypoints.mcp` in the A2A card was updated to match.
|
|
186
|
+
|
|
7
187
|
### Fixed
|
|
8
188
|
|
|
9
189
|
- Rendered the Nerd Font check as a chezmoi template so its verified-download
|
|
@@ -297,9 +477,11 @@ headers across the source tree.
|
|
|
297
477
|
to `batcat`/`fdfind`; a missing apt/dnf/pacman warns loudly instead of silently
|
|
298
478
|
installing nothing; WSL gets a best-effort `wslu` install for `wslview`. fish
|
|
299
479
|
and nushell now export `EDITOR`/`VISUAL`/`PAGER` to match the zsh/bash profile.
|
|
480
|
+
<!-- REUSE-IgnoreStart -->
|
|
300
481
|
- **Licensing:** added `SPDX-License-Identifier: MIT` headers (SPDX-first / REUSE
|
|
301
482
|
form) and normalized the copyright line to `Sebastien Rousseau` across 831
|
|
302
483
|
repo-only source files; dropped the contradictory `All rights reserved.`.
|
|
484
|
+
<!-- REUSE-IgnoreEnd -->
|
|
303
485
|
- **README** — fixed the OpenSSF Best Practices badge (was linking to the
|
|
304
486
|
new-project form with a static label; now the live `cii/percentage/12840`
|
|
305
487
|
endpoint linked to the real project).
|