Skip to content

Track Pi agent sessions with Entire - #119

Closed
elviskahoro wants to merge 46 commits into
LineIndent:mainfrom
elviskahoro:conductor/pi-agent-add
Closed

elviskahoro wants to merge 46 commits into
LineIndent:mainfrom
elviskahoro:conductor/pi-agent-add

Conversation

@elviskahoro

Copy link
Copy Markdown
Contributor

Why

Pi had no integration in this repo, so Entire could not checkpoint, capture transcripts, or offer rewind/resume for Pi sessions here — while Claude Code already had it (#120).

What

Installs the official Entire extension for Pi via entire agent add pi, which generates .pi/extensions/entire/index.ts (auto-generated; do not edit manually). The extension forwards Pi lifecycle events (session_start, before_agent_start, agent_end, session_shutdown) to entire hooks pi <event> so Entire can create checkpoints, capture transcripts, and offer rewind/resume.

Verification

  • entire agent list now shows ✓ pi (was unlisted).
  • Ran pi -p "Reply with exactly: OK" in this repo: no extension load errors.
  • entire session list shows the tracked session: Pi · glm-fast-latest · port-of-spain · session 01a1400b… — end-to-end proof the hooks fire.
  • roborev review (job 2372): "The commit fully achieves its stated intent." Two findings (stdin error-handler, skill-arg capture) live upstream in Entire's auto-generated template — dispositioned as won't-fix here since the file is installer-generated and identical copies are committed in wedding/marcelladotdev/sdk-python-attio-v1.

Matches the precedent from wedding: 84a2449 "feat: add Entire CLI integration plugins for OpenCode and Pi".

detail-app Bot and others added 30 commits October 2, 2026 21:42
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
…ed, toBase62) (#5)

Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
Fixes copy buttons in chart_util_wrapper and file_codeblock being
absolutely positioned without a positioned ancestor, which caused
them to anchor to the page root instead of the codeblock. Matches
the pattern already used in demo_wrapper. Closes AI-342.
Collapsible panels snap open and closed because the height state selectors have no transition. Match Accordion timing so both interactions animate consistently.
* chore: remove dead menu.py constants and type aliases

* Regenerate menu.md after dead-code removal

---------

Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
* chore(tools): add gtm-linear and issue-fetch CLI

gtm-linear is a Python SDK with no executable, so
scripts/linear_cli.py wraps LinearWorkflow as read-only
commands (viewer/teams/issues/issue/search) for fetching
Linear issues. Auth resolves LINEAR_API_KEY from env or
gitignored .env.local.

* refactor(tools): port Linear CLI to Typer

Type-hint-driven commands, enum state choices, rich --help,
typer.echo/secho output. Typer added as a dev dependency.

* fix(tools): harden Linear CLI after review

- Disable Typer pretty exceptions (locals in tracebacks could
  expose the API key)
- One _fail() error style for all failure paths
- Bound --limit to 1-100 via option validation instead of
  silent clamping
- Add CliRunner tests covering state enum, exit codes, auth
  failure, and LinearAPIError mapping

* test(tools): tighten Linear CLI tests after review

Assert main() prints the API error to stderr, cover
ValidationError handling with from_env patched, document
the verified settings sources on the missing-key test, use
result.output directly (click 8.2+ interleaves stderr), note
the --limit validation behavior in the CLI docstring.

* test(tools): finish Linear CLI test polish after review

Clear every LINEAR_* env var in the missing-key smoke test,
drop the version-pinned comment, add a case proving
unrelated from_env exceptions are not misreported.

* test(tools): match LINEAR_ env vars case-insensitively

pydantic-settings resolves env names case-insensitively;
also assert the original exception message survives and
document why ValueError guards a ValidationError regression.
…es (#23)

Co-authored-by: detail-app[bot] <180357370+detail-app[bot]@users.noreply.github.com>
* Prevent external links from being routed as internal pages

* Keep generated attachment docs aligned with link behavior
The Pullfrog workflow failed with "no API key found" — no provider
credentials were configured in GitHub Actions secrets.

Route Pullfrog runs to Fireworks GLM 5.3 (the same model roborev uses
for reviews in gtm-sdk, accounts/fireworks/models/glm-5p3) via BYOK:

- Pin the agent model with a raw models.dev specifier
  (fireworks-ai/accounts/fireworks/models/glm-5p3) on the pullfrog
  action's `model` input.
- Map FIREWORKS_API_KEY from GitHub Actions secrets into the run env.

FIREWORKS_API_KEY has been added as a repo secret. The Pullfrog
console model must be set to "Custom (set in workflow)" so the stored
console pick does not override the workflow's model input.
Replace the AGPL-licensed wrapper with MIT-licensed class utilities so generated frontend dependencies match the project license.
* Prevent documentation crashes from negative order values

* Prevent documentation crashes from mixed order values
Font selections beyond the old five-slot range were being packed into adjacent seed digits, so opening their shared URLs could silently produce another font and style. Deriving codec radices from the registries keeps the browser, shuffle, and CLI aligned. The unversioned format expansion may remap older 9-character URLs; the changelog and regression coverage make that accepted compatibility break explicit.
elviskahoro and others added 16 commits October 5, 2026 07:39
* Let users customize inputs without fighting default styles

Inputs ignored the shared unstyled contract, forcing consumers to override design-system defaults for custom designs. Use CoreComponent class handling to support unstyled inputs and standard class merging.

* Keep generated input docs aligned with styling behavior
Issue #40 reports that the default ImportVar package path can produce an invalid package subpath. Set the package path explicitly and verify the import propagated by the shared CN function.
* Restore tooltip centering on custom render targets

TooltipTrigger dropped its default centering classes whenever callers supplied render_, leaving native div and anchor targets uncentered. Keep render_ replacement semantics for components by default and opt TooltipTrigger into forwarding its defaults. Regression coverage checks emitted props, custom classes, the unstyled escape hatch, and unaffected render targets.

* Keep generated docs aligned with the generator
* Prevent context-menu submenus from being clipped

Keep submenu positioners outside the parent popup overflow context so larger submenu content remains visible.

* Keep generated context-menu docs in sync

The docs artifact embeds the submenu example and needs regeneration when its composition changes.

* Keep context-menu docs aligned with submenu anatomy

Ensure the hand-written and generated docs show the portal wrapper, and validate anatomy compositions in CI.
* Keep documentation paths independent of the working directory

* Keep remaining docs tooling rooted in the repository
* Restore FieldSeparator support for documented children usage

* Keep generated FieldSeparator docs in sync with the fix
* Keep block copy feedback from removing the terminal icon

* Remove redundant block-card test helper
* Unblock ES module consumers of cn()

Reflex defaults omitted ImportVar package paths to a trailing slash, which Node.js ES module imports reject and prevents cn() from working in consumers.

* Name cn import regression test after core module

* Assert compiled class-merge imports in core test
* Keep the ClientStateVar form-state example usable and documented

* Align the form example annotation with its live demo

* Make the form-state regression test resilient to formatting

* Keep the ClientStateVar guide and generated docs in sync
A later alphabetical sort overrode the frontmatter ordering authored for component and chart docs. Keep order as the primary key and title as a deterministic tie-breaker.
* Restore dataset switching in dynamic chart demos

Native option click handlers do not fire when browser dropdown selections change, leaving each dynamic chart stuck on its initial data.

* Update generated chart docs and selector tests
* Keep compact button icons visually balanced

Unsized SVGs looked oversized in 28px icon-sm buttons because they inherited a 16px default. Use a balanced 14px default and keep generated docs and regression checks aligned with the component.

* Generalize component install snippet sync coverage

* Limit install sync checks to generated snippets
Agent sessions here left no searchable history or checkpoints. Install
the claude-code agent hooks, git-ref checkpoints (synced to origin),
and the graph and brain plugins with shared agent instructions in
AGENTS.md/CLAUDE.md. Telemetry is opted out, matching the ai repo
setup.
Pi had no integration in this repo, so Entire could not checkpoint or
rewind Pi sessions here. Install the official extension via
'entire agent add pi' so Pi lifecycle events are forwarded to
'entire hooks pi <event>' for checkpoints, transcripts, and rewind/resume.
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