Commit Graph
204 Commits
Author SHA1 Message Date
Federico Jaramillo Martinez a1f749cdb6 feat: add server session queue clearing 2026-07-14 00:24:14 +02:00
Federico Jaramillo Martinez c0465c4a5c fix: delimit subsession output from guidance 2026-07-14 00:04:53 +02:00
Federico Jaramillo Martinez 0761e1509a fix: report remaining subsessions on completion 2026-07-13 23:41:20 +02:00
Federico Jaramillo Martinez d5154dfb3a feat: add explicit tracked subsession yielding 2026-07-13 22:45:07 +02:00
Federico Jaramillo Martinez 37fba00066 Merge pull request #50 from jmfederico/review-issue-48
fix: store session archives under PI_WEB_DATA_DIR
2026-07-13 21:11:50 +02:00
Federico Jaramillo Martinez cb61146b0a fix(tests): isolate Git fixtures from hook environment 2026-07-13 21:11:05 +02:00
Federico Jaramillo Martinez f2ed8c82de Merge branch 'main' into review-issue-48 2026-07-13 21:08:17 +02:00
Federico Jaramillo Martinez 47c24ed850 Merge branch 'main' into fix/pr-46-base-path 2026-07-13 19:55:14 +02:00
Federico Jaramillo Martinez 4df7f430d4 Merge branch 'main' into review-issue-48 2026-07-13 19:48:21 +02:00
Pi Web Agent c217c4a417 fix(docker): refuse unsafe development updates 2026-07-13 15:08:39 +00:00
Federico Jaramillo Martinez 050b053d23 test(sessiond): harden archive migration safety 2026-07-13 14:45:14 +02:00
Federico Jaramillo Martinez 31c98454ec fix(sessiond): migrate legacy archives before startup 2026-07-13 14:37:05 +02:00
Federico Jaramillo Martinez 7878cbe57b fix(sessions): add safe legacy archive migration core 2026-07-13 14:26:32 +02:00
Pi Web Agent 8b0452d545 fix(docker): synchronize dev dependency volume 2026-07-13 12:15:18 +00:00
Federico Jaramillo Martinez a9bcfe25ff fix: preserve plugin manifest compatibility 2026-07-13 12:29:21 +02:00
Federico Jaramillo Martinez ceeb0d413d fix(plugins): make manifests deployment relative 2026-07-12 23:28:03 +02:00
chenyimeng 27af5a70ad feat: support deploying pi-web under an arbitrary base path
Make all browser-facing API paths and WebSocket URLs relative so that
vite's <base href> can resolve them correctly when pi-web is served
from a subpath (e.g. /ai or /test/ai).

Also introduce PI_WEB_BASE_PATH so the server can generate plugin
module URLs that include the base path.
2026-07-12 23:27:43 +02:00
Federico Jaramillo Martinez d72b14f40a feat: add manual PI WEB update checks 2026-07-12 23:21:43 +02:00
Federico Jaramillo Martinez f9c0fed5e3 fix: preserve extension-only plugin asset MIME types 2026-07-12 23:07:16 +02:00
Federico Jaramillo Martinez ec0ca13120 fix: store session archives under PI_WEB_DATA_DIR 2026-07-12 22:52:59 +02:00
Federico Jaramillo Martinez 21c58fe656 fix: serve plugin SVG assets with correct MIME type 2026-07-12 22:39:41 +02:00
Federico Jaramillo Martinez 338faf4b81 perf: speed up chat loading and resume 2026-07-12 09:22:19 +02:00
Federico Jaramillo Martinez 6fbeed345e fix(sessions): clarify subsession join guidance 2026-07-11 22:03:31 +02:00
Federico Jaramillo Martinez 52925c1405 fix(sessions): restrict delegation tools in tracked children 2026-07-11 15:56:20 +02:00
Federico Jaramillo Martinez a660ba8ef8 fix(sessions): clarify subsession waiting behavior 2026-07-11 09:41:03 +02:00
Pi Web Agent 8f1b6b91ab fix: stream docker helper logs inline 2026-07-10 20:50:26 +00:00
Federico Jaramillo Martinez 410242aae8 Merge branch 'test-suite-audit-followup'
# Conflicts:
#	src/server/sessions/piSessionService.test.ts
2026-07-10 22:44:13 +02:00
Federico Jaramillo Martinez 32907bba5f chore(deps): update runtime and development packages 2026-07-10 22:10:40 +02:00
Pi Web Agent 3b2a225f87 fix(docker): resolve Pi runtime from peer dependency 2026-07-10 19:44:31 +00:00
Pi Web Agent 829b3508a4 fix: repair Docker installer asset fetch 2026-07-08 20:45:56 +00:00
Federico Jaramillo Martinez 6b61596ebd test(sessions): cover attachment filename safety 2026-07-05 00:49:45 +02:00
Federico Jaramillo Martinez 7b11f2ad75 test(server): cover websocket bridge behavior 2026-07-05 00:16:27 +02:00
Federico Jaramillo Martinez 168343a289 test(terminals): cover lifecycle publication 2026-07-05 00:11:22 +02:00
Federico Jaramillo Martinez 6bfb0a47d3 test(machines): cover remote mutation contract 2026-07-05 00:01:39 +02:00
Federico Jaramillo Martinez 1f26ae3935 test(sessions): cover archive lookup edge cases 2026-07-04 23:58:32 +02:00
Federico Jaramillo Martinez 386386d2b5 test(sessions): split pi session service specs 2026-07-04 23:53:58 +02:00
Federico Jaramillo Martinez 4c084b77cc test(server): split app route specs 2026-07-04 23:41:49 +02:00
Federico Jaramillo Martinez 9fed05850f test(workspaces): split file content service specs 2026-07-04 23:29:50 +02:00
Federico Jaramillo Martinez 73b169a768 test: close selected coverage gaps 2026-07-03 21:40:36 +02:00
Federico Jaramillo Martinez 8511604e83 test: close audit cleanup findings 2026-07-03 21:40:36 +02:00
Federico Jaramillo Martinez 10efb7f221 fix(sessions): name relay handoffs deterministically 2026-07-03 10:51:45 +02:00
Federico Jaramillo Martinez 1564f1cfc5 test: audit existing suite 2026-07-03 09:48:20 +02:00
Pi Web Agent 031aee3efe test: skip Docker command executions on Windows 2026-07-02 21:52:24 +00:00
Pi Web Agent a2bfd3657d Merge remote-tracking branch 'origin/main' into feat/docker-runtime-host-admin
# Conflicts:
#	src/client/src/api.ts
#	src/client/src/api/parsers.test.ts
#	src/shared/piWebStatusParsing.test.ts
2026-07-02 20:52:50 +00:00
Federico Jaramillo Martinez 2665d1e4bc fix: handle session start persistence 2026-07-02 18:46:44 +02:00
Federico Jaramillo Martinez 64b2b32705 feat: target settings to selected machine 2026-07-02 13:28:03 +02:00
Federico Jaramillo Martinez ad74ea4da7 refactor: generate session names via agent.streamFn instead of pi-ai compat
Rewrite sessionNameGenerator.ts to consume a StreamFn-shaped dependency
(sourced from PiAgentSession.agent.streamFn, wired in leg B) instead of
ModelRegistry plus a dynamic @earendil-works/pi-ai/compat import.

streamFn resolves auth/headers/retry internally, so the explicit
modelRegistry.getApiKeyAndHeaders(model) call and apiKey/headers stream
options are no longer needed.

Deletes now-dead compat-loading machinery: getPiAiProviderRegistryModule,
loadPiAiProviderRegistryModule, importOptionalPiAiModule,
isModuleUnavailableError, hasGetApiProvider, PI_AI_COMPAT_MODULE,
ModuleImporter, SessionNameApiProvider, PiAiProviderRegistryModule, and
the module-level provider registry cache.

Updates the maybeGenerateSessionName call site in piSessionService.ts to
pass session.agent.streamFn instead of this.modelRegistry, and updates
both test files: sessionNameGenerator.test.ts gains coverage for the new
streamFn-driven generateShortSessionName signature (success and error
paths), and piSessionService.test.ts gains an end-to-end test proving a
first prompt generates a session name through the wired agent.streamFn
fake.

sessionNameGenerator.ts no longer imports @earendil-works/pi-ai/compat
or references getApiProvider anywhere.
2026-07-02 11:42:30 +02:00
Federico Jaramillo Martinez 6f59a4243e refactor: expose session streamFn on PiAgentSession
Add a narrow `agent: { streamFn: StreamFn }` field to the PiAgentSession
interface, sourced structurally from the real AgentSession.agent (Agent,
from the stable @earendil-works/pi-agent-core package). This is the
resolved-auth/headers/retry "call this model" function pi's own
compaction/branch-summarization code uses internally, and will let
sessionNameGenerator.ts drop its dependency on the deprecated pi-ai
/compat provider registry in a follow-up leg.

No adapter object was needed: AgentSession's real .agent field already
structurally satisfies the new narrow shape, so defaultCreateAgentRuntime
needed no changes.

Adds a unit test proving the field is wired end-to-end via the injected
runtime creator. sessionNameGenerator.ts itself is untouched (leg C).
2026-07-02 11:28:18 +02:00
Federico Jaramillo Martinez e7d418fd2b fix: serialize pi package mutations 2026-07-01 22:31:37 +02:00
Federico Jaramillo Martinez 332db5faeb feat: expose package management capability 2026-07-01 22:13:02 +02:00