Commit Graph
405 Commits
Author SHA1 Message Date
can1357 ce045f02a2 chore: bump version to 14.9.9 2026-05-12 16:42:51 +02:00
can1357 1cb451a071 fix(workers): replaced file-URL import pattern with compiled-binary-aware spawn
- Replaced `with { type: "file" }` worker imports with `isCompiledBinary()` hybrid: literal string for `--compile` static analysis, `new URL(import.meta.url)` for dev portability.
- Added worker entrypoints as explicit `--compile` args in `build-binary.ts` so Bun emits them into bunfs.
- Added `smokeTestSyncWorker` and `omp --smoke-test` to catch silent worker-load failures in compiled binaries (fixes #1011, #1027).
- Added `isCompiledBinary()` utility to `@oh-my-pi/pi-utils` detecting bunfs path markers.
2026-05-12 16:40:15 +02:00
can1357 64e89b12b5 chore: bump version to 14.9.8 2026-05-12 11:17:24 +02:00
can1357 2726ee03e3 chore: bump version to 14.9.7 2026-05-12 09:29:55 +02:00
can1357 c504c2654a chore: bump version to 14.9.5 2026-05-12 06:34:13 +02:00
can1357 975941aba4 chore: remove garbage tests 2026-05-12 04:09:33 +02:00
can1357 4976fa7b9e chore: bump version to 14.9.3 2026-05-10 20:31:48 +02:00
can1357 32e1b41889 feat(coding-agent): added prompt markers to system prompt assembly
- Added explicit prompt markers and wrappers across system templates, including `[env]`, `[role]`, `[coop]`, `[closure]`, and `[now]`.
- Removed `renderTemplate` and `sectionSeparator` flows, deleted `task/template.ts`, and switched to per-task `renderSubagentUserPrompt` rendering.
- Updated system prompt assembly to `shortenPath`-normalize `cwd`, append rendered now metadata, and preserve trailing `[now]` blocks.
- Removed legacy template tests and added prompt-composition tests for ordered `[contract]`->`[project]`->`[now]` blocks and context-only system placement.
- Reworked shared prompt utilities by collapsing consecutive blank lines and removing obsolete `OPENING_HBS`/`LIST_ITEM` helper behavior.
2026-05-10 12:27:45 +02:00
can1357 d25942da2a chore: bump version to 14.9.2 2026-05-10 08:01:16 +02:00
can1357 e973081a13 chore: bump version to 14.9.1 2026-05-10 05:31:37 +02:00
can1357 b12bb9653e chore: bump version to 14.9.0 2026-05-10 05:18:32 +02:00
can1357 9f386dd6e5 feat(ai,coding-agent): raw SSE diagnostics + steady-state idle watchdog
Adds an opt-in onSseEvent callback across HTTP-streaming providers (Anthropic, OpenAI Responses/Completions, Azure OpenAI Responses, OpenAI Codex SSE, Google Gemini CLI, GitLab Duo, Kimi, Synthetic) so callers can inspect raw SSE frames without altering parsed output. Provider fetch wrapping only tees response bodies when an observer is wired; standalone packages/ai consumers without onSseEvent are not penalized.

Adds streamIdleTimeoutMs (env: PI_STREAM_IDLE_TIMEOUT_MS, with PI_OPENAI_STREAM_IDLE_TIMEOUT_MS as a backward-compatible alias). Anthropic now enforces a steady-state idle watchdog (default 120s) in addition to the first-event watchdog. OpenAI Responses, Azure Responses, and Codex (SSE + WebSocket) gain a semantic-progress predicate so response.in_progress-style keepalives no longer keep stalled tool calls alive forever.

Adds a coding-agent debug-panel raw SSE viewer backed by a per-session bounded buffer (1000 records / 512KB) that AgentSession populates unconditionally so users can post-hoc inspect a stuck stream from the TUI.
2026-05-10 04:53:41 +02:00
can1357 5ad37428a0 chore: bump version to 14.8.1 2026-05-09 07:04:11 +02:00
can1357 c06dc48b3f chore: bump version to 14.8.0 2026-05-09 05:52:26 +02:00
can1357 13af037484 chore: bump version to 14.7.8 2026-05-08 20:41:26 +02:00
can1357 afc2da34e0 chore: bump version to 14.7.7 2026-05-08 11:13:27 +02:00
can1357 0c40e23a7a chore: bump version to 14.7.6 2026-05-08 00:14:00 +02:00
can1357 266d3b0453 chore: bump version to 14.7.5 2026-05-07 18:10:14 +02:00
can1357 903b8f03a5 fix(utils): scrubbed macOS malloc logging env vars at startup
- Added a new `scrubProcessEnv` helper in `procmgr` to remove macOS malloc logging variables from `process.env` before spawning.
- Invoked the helper at coding-agent CLI startup so bun sub-processes no longer inherit the problematic environment.
- This prevented the recurring `MallocStackLogging` warning from appearing in child process stderr output.
2026-05-07 15:45:44 +02:00
can1357 3d07607415 chore: bump version to 14.7.4 2026-05-07 09:27:14 +02:00
can1357 0acd9660a6 chore: bump version to 14.7.3 2026-05-07 00:34:52 +02:00
can1357 9672139228 feat: added shared readSseEvents utility for Anthropic SSE parsing
- Added `readSseEvents` and `ServerSentEvent` exports in utils for reusable SSE stream parsing.
- Replaced Anthropic's local SSE parser with shared `readSseEvents(response.body, signal)` decoding.
- Updated abort handling in agent stream loop to race an `ABORTED` sentinel with `responseIterator.next()`.
- Expanded stream tests for `readSseEvents` parsing of CRLF, comments, split UTF-8 chunks, and trailing events.
2026-05-07 00:08:06 +02:00
can1357 6dedfda999 chore: bump version to 14.7.2 2026-05-06 20:36:24 +02:00
Can BölükandGitHub dd6a9b4e54 Merge pull request #933 from Parsifa1/fix-python-gateway
fix(coding-agent): fix share lib error for python gateway
2026-05-06 18:54:28 +02:00
Can BölükandGitHub 34371a5d89 Merge branch 'main' into fix/claude-plugin-roots-test-isolation 2026-05-06 18:49:50 +02:00
can1357 3f40cb0570 fix(coding-agent): isolate python gateway state 2026-05-06 18:14:00 +02:00
Parsifa1andcan1357 1b2b8f0991 fix(coding-agent): fix share lib error for python gateway
also fix correct position for python-gateway/ for xdg spec
2026-05-06 18:08:48 +02:00
can1357 0b6d5dca58 chore: bump version to 14.7.1 2026-05-06 17:47:53 +02:00
can1357 ba2affae7f fix(coding-agent): restore path alias equivalence
Fixes #935
2026-05-06 17:23:33 +02:00
can1357 a4c8586f82 fix(coding-agent): preserve junction project paths
Fixes #935
2026-05-06 17:13:11 +02:00
Miroslav Drbal f613378bb7 fix(discovery): pass home through getPluginsDir to fix test isolation
listClaudePluginRoots accepts a home parameter so callers (and tests)
can override the base directory, but the OMP registry path was constructed
via getPluginsDir() which always reads the global dirs resolver anchored
to os.homedir(). This caused every test that passed a temp dir as home to
receive the real user registry alongside the test fixture, producing
length mismatches (+1 root in every assertion).

Fix: add an optional home override to getPluginsDir(). The override only
short-circuits the resolver when home differs from RESOLVER_HOME (the
os.homedir() value captured at module load, i.e. what dirs is anchored
to). Production callers that pass os.homedir() match RESOLVER_HOME and
still go through the XDG-aware resolver, preserving read/write coherence
with the marketplace writer and the cache invalidator. Tests passing a
temp HOME mismatch and short-circuit to <home>/<configDir>/plugins for
deterministic isolation.
2026-05-05 09:29:54 +02:00
can1357 82b6263d8f chore: bump version to 14.7.0 2026-05-04 20:52:13 +02:00
can1357 904caec79e chore: bump version to 14.6.6 2026-05-04 02:31:12 +02:00
can1357 fdac4829e8 chore: bump version to 14.6.5 2026-05-04 00:21:13 +02:00
can1357 d93b0b2121 chore: bump version to 14.6.4 2026-05-03 20:02:52 +02:00
can1357 7efbb6255e chore: bump version to 14.6.3 2026-05-03 09:08:15 +02:00
can1357 641dad3f9f fix(utils): adjusted compact number formatting to trim redundant decimals
- Updated `formatNumber` to use a helper that removes trailing `.0` for compact K/M/B values.
- Adjusted small-value branches so exact thousands and millions now format as whole units while keeping one decimal for fractional values.
- Revised the function comment examples to match the new `1K` and `1M` outputs.
2026-05-03 07:39:52 +02:00
can1357 242b121085 chore: bump version to 14.6.2 2026-05-03 05:00:22 +02:00
can1357 5f728ba735 chore: bump version to 14.6.1 2026-05-02 08:11:46 +02:00
can1357 ca70328a9b chore: bump version to 14.6.0 2026-05-02 07:02:16 +02:00
can1357 3293231a9f feat(coding-agent): implemented sqlite-backed storage for autoresearch
- Replaced file-backed autoresearch contracts with sqlite-backed session/run storage in `~/.omp/autoresearch`.
- Added `AutoresearchStorage` and rewired `init_experiment`, `run_experiment`, and `log_experiment` to persist sessions and runs.
- Added `update_notes` tool with `body`/`append_idea` inputs and updated prompts to use active-session context.
- Removed `autoresearch.md` contract parsing and checks flow, including `runChecks`, `force`, and timeout schema options.
- Updated autoresearch state/types to persist `goal`, `notes`, `branch`, and `baselineCommit` plus run justification/flag metadata.
2026-05-02 01:10:00 +02:00
can1357 34bcd29d63 chore: bump version to 14.5.14 2026-05-01 19:21:12 +02:00
can1357 bf3954b9e1 chore: bump version to 14.5.13 2026-05-01 16:11:15 +02:00
can1357 c7aa2387b7 perf(coding-agent): improved startup and model loading performance
- Tracked `models.json` modification time in the registry to skip redundant static model reloads when unchanged.
- Reworked model overlay merges and package-runner detection to use indexed lookups plus parallel file/JSON scans instead of sequential searches.
- Cached compiled prompt templates and reduced startup work by bypassing up-to-date changelog parsing and deferring background model refresh.
2026-05-01 16:09:42 +02:00
can1357 83b4c0cdb5 perf(coding-agent): implemented canonical model-index rebuild during resume
- Updated AGENTS.md discovery to use glob search honoring .gitignore, depth limits, and deduped results.
- Updated eval tool flow so Python preflight runs only when needed and exec now maps to eval when available.
- Deferred canonical model-index rebuilds during refresh/rebuildProvider and replayed pending rebuilds after resume.
- Added memoized model-equivalence resolution with trailing-marker and canonical reference caches.
- Optimized frontmatter key normalization to keep unchanged keys/arrays/objects without extra cloning.
- Updated JS executor tests to use base-path concatenation for nested fixture filesystem calls.
2026-05-01 15:41:16 +02:00
can1357 3a46b748a3 perf(ai): dynamic oauth imports per provider
- Documented and removed `utils/oauth` from the `ai` package entrypoint, noting it as a breaking change.
- Refactored `cli`, `auth-storage`, and `utils/oauth` to load provider modules via scoped dynamic `import()` calls.
- Removed top-level provider imports and barrel exports from `utils/oauth/index.ts`, streamlining oauth module loading.
- Consolidated OAuth symbol, type, and provider imports in coding-agent and tests to `@oh-my-pi/pi-ai/utils/oauth` modules.
- Defined `DEFAULT_LOCAL_TOKEN` locally in model-registry and removed its cross-package OAuth import usage.
2026-04-30 15:14:07 +02:00
can1357 c7008cc416 perf: optimized startup by parallelizing plugin preload and AGENTS scan
- Parallelized startup by deferring plugin preload and running AGENTS.md scan plus context/template/command discovery in parallel.
- Added AgentsMdSearch exports and options so prebuilt search results were passed into system-prompt construction.
- Reworked logger timing to use AsyncLocalStorage-backed nested spans, initialize a root span, and emit hierarchical summaries.
- Added PI_TIMING-gated TS/TSX module-load timing via side-effect module-timer registration and wrapped key init/request paths with logger.time.
2026-04-30 14:53:38 +02:00
can1357 83abb9e3fb chore: bump version to 14.5.12 2026-04-30 13:06:18 +02:00
can1357 baa6e7b86d feat: added process wait APIs with timeoutMs and abort signal support
- Added ProcessWaitOptions-based wait APIs with timeoutMs and abort signal support.
- Changed terminate options to accept optional signal for cancellation-aware process shutdown.
- Hardened process identity handling to avoid PID-reuse errors on Linux, macOS, and Windows.
- Updated termination flow to use live descendants and escalate from graceful to hard-kill signals.
- Wrapped awaited Process.fromPid(...).waitForExit() with parentheses before ?? true fallback.
2026-04-30 13:04:52 +02:00
can1357 7604d71417 feat(ps): replaced kill-tree functions with stable Process class API
- Added `Process` class with pidfd (Linux), libproc (macOS), and handle (Windows) ownership for race-free signaling.
- Replaced `killTree`/`listDescendants` free functions with `Process.fromPid`, `fromPath`, `terminate`, and `waitForExit`.
- Added `TerminationTargets` for batching pgid+pid sets across pty and shell job teardown.
- Migrated `procmgr` and `ptree` to use the new native API, removing the `setNativeKillTree` injection pattern.
2026-04-30 13:04:52 +02:00