feat: add optional Pi configuration - #26
Merged
Merged
Conversation
Aviator-Coding
pushed a commit
to Aviator-Coding/dotfiles
that referenced
this pull request
Aug 1, 2026
* Add optional Pi teaching configuration * no-mistakes(review): Cover nested Pi backups and settled completion * no-mistakes(document): Clarify Pi per-file symlink documentation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Implement the captain-approved, strictly additive public Pi teaching batch in kunchenguid/dotfiles while preserving the existing from-scratch tutorial flow and video fidelity. Ship exactly a clean-room Rose Pine Moon theme made from the public Rose Pine palette and public Pi theme schema; credential-free model context-window overrides with no authentication, endpoint, headers, account metadata, or default model selection; documented generic sanitized settings with no personal provider/model/thinking tuple, packages, runtime state, or undocumented fields; the captain-authored dependency-free terminal status-title extension; four explicit per-file Home Manager out-of-store links only; gitignore guards for auth.json and Home Manager adoption backups; and concise opt-in README documentation. Keep the containing Pi directory and all credentials, sessions, trust, caches, logs, telemetry, packages, prompts, skills, Firstmate, Herdr, launcher cask/PATH shim, and other private/runtime surfaces unmanaged and excluded. Do not introduce a Node extension-test convention or generalized Nix JSON assertion. Document that Pi and Pi Launcher are owner-installed optional dependencies, model overrides are inert until the user authenticates, Pi may deliberately rewrite tracked settings, the title extension reloads via /reload, and this is post-video additive scope. The theme must be clean-room, not copied, compared, hashed, or adapted from any private or live theme bytes.
What Changed
Risk Assessment
✅ Low: The change is well-bounded, both prior findings are resolved, and the current source conforms to the required additive Pi scope without exposing or managing private runtime surfaces.
Testing
Inspected the base-to-target change, loaded and rendered every declared theme role through Pi 0.82.0, validated the credential-free overrides and generic settings, exercised the title extension from idle through spinner and completion, evaluated exactly four Home Manager links, verified ignore guards, and recorded a real offline Pi TUI showing the theme, title, and inert-until-login behavior. All checks passed and the worktree stayed clean. A screenshot was attempted but unavailable because the gate had no browser, so the raw ANSI terminal recording is supplied as the end-user visual evidence.
Evidence: Focused Pi acceptance transcript
Pi 0.82.0 loaded all 52 theme roles, accepted the credential-free overrides, exercised idle/spinner/completed titles, and verified documentation and managed-file boundaries.Evidence: Real offline Pi TUI with Rose Pine Moon colors, status title, and authentication prompt
Evidence: Home Manager Pi evaluation
The evaluated Home Manager configuration contains exactly four non-recursive Pi file entries.Evidence: Pi gitignore guards
Both auth.json and nested Home Manager adoption backups match their intended ignore rules.Evidence: Overrides remain inert without authentication
No models available. Use /login to log into a provider via OAuth or API key.Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 2 issues found → auto-fixed ✅
.gitignore:11- The intent requires “gitignore guards for auth.json and Home Manager adoption backups,” but this pattern matches only backups directly underagent/. Backups beside the nested managed theme and extension remain unignored. Use/home/.pi/agent/**/*.backupor add explicit nested guards.home/.pi/agent/extensions/terminal-status-title.js:129- Pi documentsagent_endas the end of one low-level run, before possible automatic retries, compaction, or queued follow-ups. Marking the title done here stops the spinner while Pi may still be working. Set completion onagent_settledinstead, while retainingagent_startfor working state.🔧 Fix: Cover nested Pi backups and settled completion
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
git diff --name-status 7857db1b96d525e23c2d3ce53d9383987a494328..825487fed701d199185f878c61cefa9adc16ba1fplus complete seven-file intent reviewnix eval --json .#darwinConfigurations.mac.config.home-manager.users.kunchen.home.filefiltered to.pi/entriesOne-offnode --input-type=moduleacceptance harness using Pi 0.82.0's real theme and model loaders plus the extension event lifecyclePI_CODING_AGENT_DIR=<evidence>/agent PI_OFFLINE=1 PI_TELEMETRY=0 pi --list-models gpt-5.6git check-ignore -v --no-index home/.pi/agent/auth.json home/.pi/agent/adopt/deep/settings.json.backupRecorded PTY launch:pi --offline --no-session --no-context-files --approveusing the isolated public configurationAttempted browser-based screenshot capture; the gate reported that no browser was availablegit status --shortafter testing and transient-worktree cleanup check✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.