93 lines
7.3 KiB
Markdown
93 lines
7.3 KiB
Markdown
# Nono profile and Pi package baseline
|
|
|
|
Captured for Slice 0 on 27AUG2026 with nono 0.74.0. This record contains no credentials or secret values.
|
|
|
|
## Authority and activation rule
|
|
|
|
- `profiles/nono/*.json` is the reviewed profile source.
|
|
- `config/pi-package-lock.json` records observed immutable installed evidence and blockers. It does not select packages.
|
|
- `$HOME/.pi/agent/settings.json` selects active Pi packages.
|
|
- `config/pi-links.json` owns repository-managed resource links. It is not package-source authority.
|
|
- Any package-lock entry with `status: blocked` prevents normal-profile activation until maintenance resolves the blocker and refreshes the evidence.
|
|
- Profile inheritance is additive. A child profile cannot be treated as narrowing a broader inherited grant.
|
|
|
|
## Active profile state
|
|
|
|
| Profile | Active form at capture | Repository disposition |
|
|
| --- | --- | --- |
|
|
| `pi-local` | Symlink to `profiles/nono/pi-local.json` | Already repository-managed. |
|
|
| `pi-work` | Symlink to `profiles/nono/pi-work.json` | Already repository-managed. |
|
|
| `pi-orca-local` | Symlink to `profiles/nono/pi-orca-local.json` | Approved drift imported, narrowed to read-only trusted-file access, and relinked on 27AUG2026. |
|
|
| `pi-harness-tools` | Symlink to `profiles/nono/pi-harness-tools.json` | Approved drift imported, narrowed to read-only trusted-file access, and relinked on 27AUG2026. |
|
|
|
|
The imported `pi-orca-local` drift is limited to exact read-only access for `$HOME/.pi/agent/AGENTS.md`. Its saved grant for `$HOME/.pi/agent/extensions/workflow/index.ts` was not imported because the user removed that extension; [ADR 0006](adr/0006-skill-led-development-workflow-04SEP2026.md) replaces it with the `develop-workflow` skill, which needs no extension-source grant. The imported `pi-harness-tools` drift is limited to exact read-only access for `$HOME/.pi/agent/extensions/pi-todo-herdr/index.ts` and `$HOME/.config/herdr/herdr.sock`. Its inherited `pi-local` policy already contains the Herdr Unix-socket grant. The active files used read/write `allow_file` saved grants; the repository deliberately narrows them to `read_file` because normal sessions do not need to modify trusted instructions or extension code. No other active saved grant was imported.
|
|
|
|
The legacy `workflow` extension was unlinked from active Pi state by the user during this slice. It remains absent from normal `config/pi-links.json` exposure so reconciliation will not recreate it. The `develop-workflow` skill replacement and its remaining pilot are tracked in `docs/todos.md`.
|
|
|
|
## Draft disposition
|
|
|
|
| Draft | SHA-256 | Evidence | Approved disposition |
|
|
| --- | --- | --- | --- |
|
|
| `pi-local-dictate.json` | `4ec20ea2b68f9eaed46e0ae1e3fb86f3e3ee32d9c3b7f9dc3bc0cc17a8f27e88` | Filename and internal name disagree: the internal name is `pi-local`. Its dictation-related state and socket grants are represented by reviewed repository policy. | Deleted after committed evidence and hash verification on 27AUG2026. |
|
|
| `pi-harness-tools.json` | `79ba451192ced087a25c17c8d006f8010374adbad7685f6ac6357e838abbb6b8` | Internal name matches. Its approved saved grants are imported above. | Deleted after committed evidence and hash verification on 27AUG2026. |
|
|
|
|
The approved host-only cleanup was executed with this hash guard:
|
|
|
|
```bash
|
|
printf '%s %s\n' \
|
|
4ec20ea2b68f9eaed46e0ae1e3fb86f3e3ee32d9c3b7f9dc3bc0cc17a8f27e88 "$HOME/.config/nono/profile-drafts/pi-local-dictate.json" \
|
|
79ba451192ced087a25c17c8d006f8010374adbad7685f6ac6357e838abbb6b8 "$HOME/.config/nono/profile-drafts/pi-harness-tools.json" | sha256sum --check --strict && \
|
|
rm -- "$HOME/.config/nono/profile-drafts/pi-local-dictate.json" \
|
|
"$HOME/.config/nono/profile-drafts/pi-harness-tools.json"
|
|
```
|
|
|
|
The `.nono-pi-pack-marker` is package wiring, not a profile draft, and remains in place.
|
|
|
|
## Package and extension inventory
|
|
|
|
`config/pi-package-lock.json` captures all nine active package selections:
|
|
|
|
- Six npm packages with exact installed versions and npm integrity values.
|
|
- `pi-ask` and `diagram-design` with exact installed Git commits.
|
|
- `nolabs-ai/pi` 0.2.0 with signed registry provenance and installed artifact digests.
|
|
|
|
Only `@pi-kaush/pi-welcome-screen@0.1.3` is currently locked end to end. Bare npm sources, `@latest`, and Git URLs without revisions remain blocked even though their installed contents are identified. `nolabs-ai/pi` remains blocked because the nono lockfile records `pinned: false`.
|
|
|
|
The extension inventory records the active repository-backed links and their observed commits. Mutable checkout targets and unmanaged links remain blocked until maintenance installs immutable snapshots. The unmanaged active `lm-studio.ts` file is recorded by SHA-256 and remains blocked pending the Slice 1 import and quarantine. `update` remains actively linked at capture time but has been removed from normal link exposure. The active `workflow` link was removed by the user and is not part of the current active inventory.
|
|
|
|
## Maintenance-only follow-up
|
|
|
|
No following command was run as part of repository implementation or automated verification.
|
|
|
|
1. Review `config/pi-package-lock.json`, replace floating package selectors with immutable selectors, pin and re-verify `nolabs-ai/pi`, and install immutable extension snapshots.
|
|
2. Validate the repository profiles and review their resolved policies.
|
|
3. The active `pi-orca-local` and `pi-harness-tools` files were backed up under `$HOME/.local/state/nono-profile-backups/slice-0-27AUG2026`, replaced with repository symlinks, and strictly validated on 27AUG2026.
|
|
4. From the integrated primary `/srv/data/code/harness-tools` checkout, review the dry-run and reconcile links from tracked sources. This will remove stale repository-owned `update` exposure while preserving unrelated external links. The current tool treats primary-checkout links as conflicts when invoked from a linked worktree; that limitation is tracked in `docs/todos.md`.
|
|
|
|
```bash
|
|
cd /srv/data/code/harness-tools
|
|
node scripts/pi-links.mjs prune --dry-run
|
|
node scripts/pi-links.mjs prune
|
|
node scripts/pi-links.mjs check
|
|
```
|
|
|
|
The hash-guarded draft cleanup above is complete.
|
|
|
|
## Restoration and rollback
|
|
|
|
Before host relinking, the active regular profile files remain the immediate rollback source. After relinking, Git restores the reviewed definitions:
|
|
|
|
```bash
|
|
git restore --source=<reviewed-commit> -- \
|
|
profiles/nono/pi-orca-local.json \
|
|
profiles/nono/pi-harness-tools.json && \
|
|
nono profile validate --strict profiles/nono/pi-orca-local.json && \
|
|
nono profile validate --strict profiles/nono/pi-harness-tools.json
|
|
```
|
|
|
|
Managed links are restored only through `config/pi-links.json` and `scripts/pi-links.mjs`; generated destinations are never edited directly. Draft deletion is intentional and irreversible: the recorded hashes prove identity but cannot reconstruct prior bytes. No retained artifact is claimed as a byte-for-byte backup, and deleted drafts must not be placed back in nono's draft search path.
|
|
|
|
## Actions not performed
|
|
|
|
This slice did not change Pi settings, credentials, or provider configuration, install or update packages, pin the nono package, reconcile or prune generated links, broaden production access, or edit generated skill links. Approved host changes were limited to the hash-guarded draft deletion and relinking `pi-orca-local` and `pi-harness-tools` to their strictly validated repository definitions after creating host-only backups.
|