Commit Graph

13 Commits

Author SHA1 Message Date
Joseph O'Brien
c7c074d48b feat: add notnet crate and YubikeySource, thread Tailscale into notstrap
- New crates/notnet: TailscaleOptions, ensure_connected(), auth key chain
  (TS_AUTHKEY env → YubiKey PIV 9d → interactive prompt), install via
  apt/brew/pacman or official install.sh, peer reachability verification
- notsecrets: YubikeySource implementing IdentitySource, reads age key from
  PIV slot 9c; gated behind optional `yubikey` feature
- notstrap: Tailscale step inserted between prerequisites and clone;
  BootstrapOptions.tailscale controls override/skip; NotstrapConfig gains
  optional [tailscale] section; dotfiles_repo is now Option<String> (Tailscale
  gitea_url takes precedence); identity chain adds YubikeySource before
  Bitwarden
- Updated workspace Cargo.toml: notnet added to members and workspace deps
- Integration tests: tailscale: Some(None) to skip Tailscale in all test opts
2026-04-17 00:01:50 -04:00
Joseph O'Brien
67f20eef2d Refactor: Formalize ports and update related files 2026-04-15 21:27:25 -04:00
Joseph O'Brien
ebb8a5946d refactor(nothooks): make hook runner language-agnostic
Some checks failed
Public Repo Readiness / Check Public Repo Readiness (push) Failing after 6s
Remove hardcoded nu interpreter. HookSpec gains an optional interpreter
field; runner infers from file extension (.sh, .nu, .py, .rb, .zsh,
.bash) when not set. Integration tests now use sh — no nu runtime dep
on CI.
2026-04-04 01:14:29 -04:00
Joseph O'Brien
b5a27108d0 feat(notgraph): heatmap coloring, symbol counts, per-crate module graphs, cycle callouts 2026-04-02 20:53:07 -04:00
Joseph O'Brien
58de007e19 feat(notstrap): migrate to notsecrets age-native API, remove sops shell-out
Replace AgeKeySource/resolve_age_key/install_age_key with IdentitySource/resolve_identities.
Update integration tests to use a valid age bech32 key fixture.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 21:19:23 -04:00
Joseph O'Brien
b4cba74ea3 docs: update HANDOFF.md — age-native redesign progress (tasks 1–7 complete) 2026-04-01 20:58:09 -04:00
Joseph O'Brien
bd06746b31 test(integration): improve cross_crate test clarity
Some checks failed
Public Repo Readiness / Check Public Repo Readiness (push) Failing after 4s
2026-04-01 06:33:34 -04:00
Joseph O'Brien
02c84c32f7 test(integration): add cross-crate boundary tests 2026-04-01 06:32:07 -04:00
Joseph O'Brien
eb1807a8b1 test(integration): improve test clarity with expect() and constants 2026-04-01 05:14:27 -04:00
Joseph O'Brien
dcbbe6c716 test(integration): add bootstrap flow tests via notstrap::run()
Three tests covering the full bootstrap path: dot-hook execution with
symlink verification, setup-hook skip-on-rerun via state file, and
fail-fast behaviour when the age key is missing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 05:11:50 -04:00
Joseph O'Brien
ef052c86cd chore: add integration test crate to workspace 2026-04-01 05:01:42 -04:00
Joseph O'Brien
ed11aa9bc3 feat(workspace): migrate notfiles into crates/ workspace layout
Move src/ and tests/ into crates/notfiles/ as a proper lib+bin crate.
Internal config/error/paths modules replaced with notcore imports.
All 31 workspace tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 17:23:16 -04:00
Joseph O'Brien
929f711cbf Initial commit 2026-03-24 06:43:49 -04:00