Draft
Conversation
4dce3fe to
c811656
Compare
Add full Signet memory integration for the Pi coding agent platform: - pi-extension: session lifecycle, recall/remember commands and tools, context injection, compaction handling, daemon health checks - connector-pi: managed extension installer with bundled dist, bootstrap env generation, and PI_CODING_AGENT_DIR persistence - extension-base: extract shared helpers, transcript, and base types from both oh-my-pi-extension and pi-extension to eliminate duplication - connector-base: extract shared connector utilities from both connectors - Consolidate daemon URL reads in pi-extension factory for consistency - Add 58 tests across pi-extension, connector-pi, and shared packages - Update docs, landing page, and CLI setup wizard for Pi harness Assisted-by: GitHub-Copilot:claude-opus-4-6 Assisted-by: GitHub-Copilot:claude-sonnet-4-5 Assisted-by: GitHub-Copilot:gpt-5-4 Assisted-by: GitHub-Copilot:gpt-5-2-codex Assisted-by: Pi:kimi-k2-5
c811656 to
540ad82
Compare
Previously, signet sync and signet setup --non-interactive only detected Pi/Oh My Pi if Signet's managed extension was already installed (chicken-and-egg). Now also checks if the platform's agent directory exists (e.g. ~/.pi/agent/). Additionally, the non-interactive existing-install setup path now installs harness hooks when --harness is specified, instead of silently returning without configuring anything. Assisted-by: GitHub-Copilot:claude-opus-4-6
Pi support is new — there was never a .mjs extension deployed, so the legacy filename constant, getLegacyManagedExtensionPath(), and all .mjs cleanup paths in install/uninstall/isInstalled were dead code copied from Oh My Pi's genuine migration pattern. Assisted-by: Copilot (claude-opus-4.6) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add detailed documentation for Pi extension runtime behavior: - Automatic recall injection on every user prompt - Manual /recall, /remember, /signet-status commands - LLM-callable signet_recall and signet_remember tools - Note that Pi lacks Oh My Pi attribution field for X-Initiator override Assisted-by: Claude Opus 4.6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply biome organizeImports and format fixes across extension and connector packages. Remove dead imports. Assisted-by: Claude Opus 4.6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
rememberContent sent `critical` in the request body but the daemon /api/memory/remember endpoint reads `body.pinned`. Since the extension already strips the "critical:" prefix from the content, the prefix parser cannot recover it either. Rename the body field to `pinned` so the daemon correctly stores the memory as pinned. Assisted-by: GitHub-Copilot:claude-opus-4-6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When SIGNET_BYPASS=1 is set, Pi extension skips automatic hook registration (lifecycle, prompt, context, compaction) but keeps commands and tools available. Oh My Pi extension skips all handler registration since it has no commands or tools. The bypass env var is read at factory invocation time rather than at module load, so it works correctly per-session. Assisted-by: GitHub-Copilot:claude-opus-4-6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
| | `--description <description>` | Agent description in non-interactive mode | | ||
| | `--deployment-type <type>` | Deployment context (`local`, `vps`, `server`) used for interactive guidance and non-interactive inferred defaults | | ||
| | `--harness <harness>` | Repeatable/comma-separated harness list (`claude-code`, `opencode`, `openclaw`, `codex`) | | ||
| | `--harness <harness>` | Repeatable/comma-separated harness list (`claude-code`, `opencode`, `openclaw`, `oh-my-pi`, `pi`, `codex`, `forge`) | |
Adds the Pi session ID alongside the daemon URL in a single status notification so users can identify which session the daemon is tracking. Assisted-by: GitHub-Copilot:claude-opus-4-6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
540ad82 to
a3751fd
Compare
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.
NOTE: Not ready for review!
Summary
Add support for pi-coding-agent as a first-class Signet harness, with full memory lifecycle integration, shared code extraction across extensions, and shared connector utilities.
Changes
Pi.
transcript utilities extracted from both oh-my-pi-extension and pi-extension to eliminate duplication.
--harness hooks.
Type
Packages affected
PR Readiness (MANDATORY)
(PR is not ready)
INDEX.md+dependencies.yaml)Automated Testing
bun testpassesbun run typecheckpassesbun run lintpassesManual Testing
Basic Testing
signet setupsignet setup --harness pi --name "test-agent" --non-interactiveAmbient store/recall
Slash commands with SIGNET_BYPASS=1:
/signet-status/remember I prefer bun/recall do I prefer npm or bun/remember critical: always use TypeScript strict mode/remember [tooling, style]: prefer biome over eslintTools with SIGNET_BYPASS=1
Please remember that we use tabs not spaces for indentation.What do you remember about our coding conventions?Other
SIGNET_ENABLED=false piSIGNET_DAEMON_URL=http://127.0.0.1:3851 pisignet syncsignet updateAI disclosure
Assisted-bytags in commits)