Skip to content

v1.0.2: Project Cleanup - #22

Merged
Pakrohk merged 12 commits into
mainfrom
feat/v1.0.2-cleanup
Oct 15, 2026
Merged

Pakrohk merged 12 commits into
mainfrom
feat/v1.0.2-cleanup

Conversation

@Pakrohk

@Pakrohk Pakrohk commented Oct 14, 2026

Copy link
Copy Markdown
Owner

Summary

Complete project cleanup (Phase 7) covering documentation hygiene, personal file removal, legacy script elimination, and roadmap registration.

What's new (or removed)

  • 7a — Governance: ADR-008 registered (roadmap for phases 7-9 + per-plugin repositories)
  • 7b — Junk Removal: ~49MB disk freed (.bak, .zwc, opencode-mem archives, root clones)
  • 7cd — Personal Files: -1089 lines; .zshrc rewritten to 14-line minimal template
  • 7e — Update Internalization: ziro update command with non-blocking background check (24h TTL)
  • 7f — Legacy Cleanup: -751 lines (test.sh, ziro-cli, install.ps1 removed; install.sh modernized)
  • 7g — Docs/CI/Packaging: no .specify refs in public docs; stats updated; CI branches cleaned; /plugins/ gitignored; pyproject 1.0.2
  • 7h — Spec 010: pf plugin design (cross-shell package manager, spec-only)

Metrics

  • Tests: 229/229 (+10 from v1.0.1)
  • Hot-path: 4.72ms (< 6ms budget)
  • Disk: -49MB after junk removal
  • Net code: ~-1900 lines (junk + legacy + personal files)

Breaking changes

None. All existing commands still work.

Migration notes

  • .zshrc template simplified (users add their own config below)
  • Personal files removed (users maintain own aliases/functions)
  • Update system now internal (ziro update replaces .zsh_update.zsh)

- ADR-008: phase-to-version mapping (7→v1.0.2, 8→v1.1.2, 9→v1.1.5)
- Decision: per-plugin repositories (pf, ghost, helpers) per Principle XIV
- Deferred decisions: znap rewrite (ADR-009 candidate), bash-compatible layer (ADR-010 candidate)
- Mirror to docs/wiki/sources/adr-008-roadmap-phases.md
- CHANGELOG: 'Upcoming' section (v1.0.2, v1.1.2, v1.1.5)
- README: ADR-008 listed in architecture decisions
- scripts/mirror-adrs.sh: canonical mapping for ADR-008
- 219/219 tests still pass
- Save .paru_fzf.zsh content to .specify/specs/010 (local-only, for pf design)
- Rewrite .zshrc as minimal public template (~15 lines)
- Remove personal files: .paru_fzf.zsh, .prompt.local, .zsh_aliases, .zsh_update.zsh
- Users define own aliases/functions in their own config
- Net: -1089 lines
- 219/219 tests still pass
- .zshrc syntax clean, sources ziro correctly
…se 7e)

- Add commands/update.zsh modular command module (Spec 008 compliant)
- Implement core/update_cli.py (check, pull, cache TTL, opt-out handling)
- Add non-blocking background check to integration.zsh with 24h TTL
- Guard background check for interactive TTY-only environments
- Honor opt-out via defaults.toml (check_for_updates = false)
- Add user-friendly notification when new updates are detected
- Add 10 comprehensive unit tests in tests/test_update.py
- Total tests: 229/229 pass; hot-path startup time: 4.72ms (< 6ms budget)
…ase 7f)

- Remove test.sh (637 lines, bash runner — superseded by python3 -m unittest)
- Remove ziro-cli (53 lines, bash launcher — superseded by ziro.zsh)
- Remove install.ps1 (60 lines, PowerShell — Windows native unsupported, WSL documented)
- Modernize install.sh to invoke python3 -m core install (removes legacy ziro/ refs)
- Preserve legacy ziro/ package intact per DEPRECATED.md until v1.1.0
- Net lines: -751 (7 insertions, 758 deletions)
- 229/229 tests pass; zsh -n and py_compile clean
- Remove .specify/Constitution/Spec-00x references from public docs
- Redirect readers to docs/wiki/sources/ for architecture decisions
- Update test count to 229 in CHANGELOG and README
- Fix Zsh version requirement (5.2 → 5.8)
- Clean CI workflow branches (main + feat/*, removed perf/startup)
- Add /plugins/ to .gitignore
- Bump pyproject.toml version to 1.0.2
- Move docs/audit/FEATURE-AUDIT.md to docs/wiki/archives/feature-audit-v1.0.0.md
- Ensure README lists ADR-008
- 229/229 tests pass; zsh -n and py_compile clean
- Design-only spec for pf (cross-shell package manager helper)
- Principle XIV (Plugin Sovereignty) compliance documented
- Command surface: interactive menu + subcommand mode
- Backend matrix: paru, pacman, apt, dnf, brew, apk, zypper
- Cross-shell: POSIX sh core (bin/pf) + optional Zsh wrapper
- Caching strategy: ~/.cache/ziro/pf/ (1h TTL)
- Code style: ADR-009 compliance documented
- Mirror to docs/wiki/sources/spec-010-pf-plugin.md
- Implementation deferred to Phase 9 (v1.1.5)
- 229/229 tests pass
…nners

- Resolve repo dir to checkout root if ~/.ziro/.git does not exist (CI mode)
- Fallback from origin/main to FETCH_HEAD or non-fatal un-fetched status
- Ensure ZIRO_HOME is explicitly set in TestUpdateCLI setUp
- Tests: 229/229 pass locally
… adapter

- core/install_cli.py: call generate_plugins_gen() after config writes
  Fixes BUG-A: `ziro install` was not producing the generated runtime file
- integration.zsh: source prompt adapter from prompt.conf
  Fixes BUG-B: starship prompt was never applied after fresh install
- core/generator.py: implement generate_plugins_gen() from defaults and plugins
  Fixes BUG-C: plugins.gen.zsh now includes default tools in load order
- prompts/starship.zsh: wrap config in anonymous function and guard idempotency
- tests/test_install_generates_plugins.py: 5 tests covering fixes
- 234/234 tests pass
…naries

- core/generator.py: guard starship, fzf, zcolors, and zoxide with (( $+commands[...] ))
  Fixes: '(eval):1: command not found: zcolors' when optional tools are absent
- prompts/starship.zsh: guard starship init with (( $+commands[starship] ))
- Implements Failure Resilience (Principle IV) for optional CLI tools
- 234/234 tests pass
- Reclassify zcolors from znap_eval to znap_source (it's a zsh plugin, not binary)
- Generator: emit guard (( $+commands[X] )) ONLY for znap_eval (external binaries)
- znap_source and zsh_defer plugins are emitted without guard (always loaded)
- Fixes: zcolors now loads even without a system-installed zcolors binary
- Tests: 4 new tests for plugin/binary classification (238/238 pass)
…endency

- Emit 'znap eval marlonrichert/zcolors "./zcolors ${(q)LS_COLORS}"'
- Znap clones repo and executes ./zcolors internally without host binary dependency
- Removes any missing-command error or need for (( $+commands[zcolors] )) guard
- Colors (LS_COLORS, GREP_COLOR, zcolor array) fully active with <3ms cached startup
- 238/238 tests pass
@Pakrohk
Pakrohk merged commit aff4087 into main Oct 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant