Commit Graph

9915 Commits

Author SHA1 Message Date
can1357 81d9e17881 fix(coding-agent/commands): ensured auth storage connection is closed
- Wrapped the token command logic in a try-finally block to ensure the authentication storage is closed after execution.
2026-06-19 17:27:02 +02:00
can1357 ff3a1d8863 Merge remote-tracking branch 'origin/farm/f56ccf5e/mnemopi-local-embeddings-macos' 2026-06-19 17:24:56 +02:00
can1357 14603e9b32 docs(changelog): normalize [Unreleased] after PR integration
Promote union-merged entries into [Unreleased], drop a duplicated
Removed block, and add the missing #3006 entry.
2026-06-19 17:24:17 +02:00
can1357 89e9ce8647 feat(python/robomp): bootstrapped node_modules in bare worktrees
- Added `ensure_workspace_dependencies` to automate `bun install` for new worktrees where dependencies are missing.
- Configured the installer to use `--frozen-lockfile` and `--ignore-scripts` to preserve security and lockfile integrity.
- Integrated the bootstrap step into the worker startup process to ensure workspace packages are resolvable.
2026-06-19 17:22:48 +02:00
roboomp b4e1a9e235 fix(mnemopi): repaired stale fastembed configs
- Downloaded config.json with tokenizer sidecars when repairing stale fastembed model caches.\n- Treated fastembed Config file missing errors as repairable initializer failures.\n- Extended cache repair coverage for the missing-config state.\n\nFixes #3054
2026-06-19 15:21:09 +00:00
eval 4bb7349779 fix(mnemopi): use requireMnemopiCore() in clear() to avoid module-not-loaded throw 2026-06-19 17:17:04 +02:00
can1357 2de02f2119 Merge PR #3019: fix: Windows test failures — path handling, EBUSY, SQLite handle leaks (@oldschoola) 2026-06-19 17:17:04 +02:00
can1357 f88cf45eb6 fix(lsp): also no-op workspace/{inlineValue,foldingRange}/refresh
The PR fixed the -32601 hang for the defined server->client refresh
requests but missed two real spec methods of the identical class:
workspace/inlineValue/refresh (LSP 3.17) and workspace/foldingRange/refresh.
A server emitting either still received Method not found and could stall.
Add both to the void-ack chain and extend the regression test.
2026-06-19 17:17:04 +02:00
can1357 a8966466bb Merge PR #3045: fix(lsp): reply to defined server requests with spec no-ops (@roboomp) 2026-06-19 17:17:04 +02:00
can1357 7b8c6ac369 docs(ai): add changelog entry for Ollama text-only image omission 2026-06-19 17:16:53 +02:00
can1357 8691f41000 Merge PR #3009: fix(ai): omit Ollama images for text-only models (@serverinspector) 2026-06-19 17:16:53 +02:00
can1357 6486e2a14a Merge PR #3021: fix(ipc): harden worker IPC send against async EPIPE rejections (@oldschoola) 2026-06-19 17:16:37 +02:00
can1357 2b1261728d Merge PR #3020: test(ai): pin reasoning_content contract for null content deltas (@oldschoola) 2026-06-19 17:16:37 +02:00
can1357 5c66faa81d Merge PR #3026: fix(coding-agent): guard theme getters against undefined theme before init (@oldschoola) 2026-06-19 17:16:37 +02:00
can1357 0916017b5a Merge PR #3037: fix(coding-agent): delay image credential lookup until execution (@roboomp) 2026-06-19 17:16:37 +02:00
can1357 41369837bc Merge PR #3042: fix(mnemopi): use runtime remote LLM for extraction (@roboomp) 2026-06-19 17:16:37 +02:00
can1357 480aa1763c Merge PR #3034: fix(mnemopi): isolate local embeddings worker in subprocess (@roboomp) 2026-06-19 17:16:36 +02:00
can1357 83221650f1 Merge PR #3038: fix(coding-agent): auto-enable append-only context for Ollama and local servers (@roboomp) 2026-06-19 17:16:18 +02:00
can1357 052b6b0c61 Merge PR #3006: fix(providers): accept Bedrock inference profile ARNs (@roboomp) 2026-06-19 17:16:18 +02:00
can1357 6f05108299 Merge PR #3023: fix(coding-agent): re-encode WebP for local-server models (@danzaio) 2026-06-19 17:16:07 +02:00
can1357 40101bd3eb Merge PR #3043: fix(catalog): omit Ollama Cloud output caps (@wolfiesch)
# Conflicts:
#	packages/catalog/src/models.json
2026-06-19 17:15:43 +02:00
roboomp 19d103b708 style: bun run fix 2026-06-19 15:14:50 +00:00
roboomp 156ec3c363 fix(mnemopi): restored local fastembed runtime
- Preserved fastembed's transitive ONNX Runtime instead of forcing an ABI-mismatched runtime cache install.\n- Repaired stale fastembed model caches by downloading missing tokenizer sidecars from the matching Hugging Face model repo.\n- Added regression coverage for the runtime install plan and tokenizer sidecar repair.\n\nFixes #3054
2026-06-19 15:14:38 +00:00
can1357 acd0d31f62 ci(workflows): ignored VOUCHED.td in CI triggers
- Added a paths-ignore filter to the CI workflow to prevent unnecessary runs during vouch bookkeeping commits.
- Ensured that pushes affecting both vouch files and project code continue to trigger the full CI matrix.
2026-06-19 17:02:13 +02:00
can1357 051110cfe6 hack: backtrack changelog 2026-06-19 16:46:39 +02:00
can1357 67f6518e42 feat: enhanced tool robustness, improve authentication flow, and update API parameters
- Implement JSON repair and strict argument validation to sanitize raw payloads and redact sensitive information from agent event logs.
- Add automatic authentication fallback for benchmark model resolution to ensure consistent performance testing across providers.
- Refactor search tool API parameters by replacing `i` with a case-sensitive `case` boolean flag for clarity.
- Update session history formatting to ensure empty objects are consistently serialized as `{}` instead of empty strings.
2026-06-19 16:46:07 +02:00
can1357 7d28c60c86 refactor: renamed intent field from _i to i
- Renamed the global `INTENT_FIELD` constant from `_i` to `i`.
- Updated documentation strings, type annotations, and test expectations across packages to reflect the new field name.
- Ensured consistent usage of the constant in tool schema construction and intent serialization.
2026-06-19 16:42:33 +02:00
github-actions[bot] 42bd5e65b1 Update VOUCHED list
https://github.com/can1357/oh-my-pi/discussions/3015#discussioncomment-DC_kwDOQxs0bc4BCPtC
2026-06-19 14:34:54 +00:00
can1357 db7ca77a8f chore: bump version to 16.1.2 2026-06-19 16:17:09 +02:00
can1357 d46bd0139b refactor(coding-agent): fixed system prompt customization path
- Fixed `SYSTEM.md` integration to correctly include custom-rendered sections like rules and skills.
- Consolidated system prompt validation by requiring `<skills>` tag presence instead of specific prose.
- Removed redundant system prompt math-formatting tests and orphaned task batch documentation tests.
2026-06-19 16:16:37 +02:00
can1357 fd0dd40083 refactor(coding-agent): improved detection of reflowing markdown
- Replaced regex-based markdown detection with a stateful parser in `detectLiveReflowingMarkdown`.
- Correctly ignore table delimiters and mermaid markers when they appear inside fenced code blocks.
- Added tests to verify that code blocks containing markdown-like syntax do not prevent commit stability.
2026-06-19 16:11:40 +02:00
can1357 865694df7e fix: resolved streaming stability and reference isolation issues
- Prevent object reference sharing between agent snapshots and stream events by deep-cloning tool-call arguments.
- Stabilize GFM tables and Mermaid diagrams during streaming by delaying transcript block commits until content finalization.
- Implement session resume safety to prevent crashes when working directories are missing.
- Add comprehensive test suites to verify streaming commit stability and immutable snapshot isolation.
2026-06-19 16:09:00 +02:00
can1357 bb304dc2cc refactor(coding-agent/prompts): shortened language in browser.md, eval.md, and
- Shortened language in `browser.md`, `eval.md`, and `prompt.md` to improve clarity and reduce token consumption.
- Refined instructional phrasing throughout the tool documentation for better readability.
2026-06-19 16:08:06 +02:00
can1357 80a0a1b8a8 feat(utils): replaced createAbortableStream with abortableSource
- Introduced `abortableSource` as a lighter, direct-reader async generator.
- Removed the `createAbortableStream` public API to eliminate unnecessary stream wrapper layers.
- Updated internal stream processing to use `abortableSource` for improved memory and performance.
2026-06-19 16:06:18 +02:00
can1357 08c4dd2676 perf(agent): avoided redundant cloning of assistant messages
- Optimized `snapshotAssistantMessageEvent` to accept an optional pre-computed partial snapshot.
- Eliminated redundant deep-clones of `partialMessage` during streaming updates by sharing a single immutable snapshot between the message and the event.
2026-06-19 16:06:18 +02:00
can1357 3f10bc5e43 perf(coding-agent/debug): optimized buffer eviction with head-index ring
- Replaced O(n) `Array.shift()` calls with O(1) head-index tracking in `RawSseDebugBuffer`.
- Implemented lazy compaction to reclaim the dead-prefix memory only when the leading window grows sufficiently large.
- Added comprehensive tests to verify ordering, dropped count accuracy, and buffer limits under heavy load.
2026-06-19 16:06:18 +02:00
can1357 a1a07fa9e1 feat(skills/tool-prompt-optimization): added builtin probing utility
- Added `probe-builtin.ts` to allow testing tools directly by name instead of manual schema and template input.
- Implemented automatic wire schema resolution and prompt outlining for builtin tools.
- Updated documentation with usage instructions for the new shortcut script.
2026-06-19 16:06:18 +02:00
can1357 a98230addc chore: update changelog & tests 2026-06-19 16:06:18 +02:00
can1357 6bc194b0fb feat(coding-agent): added subagent launch latency instrumentation
- Add `onFirstChatDispatch` hook to `CreateAgentSessionOptions` to track the boundary between session creation and the initial model request.
- Update `runSubprocess` and `TaskTool` to measure and log detailed latency metrics across the subagent lifecycle, including semaphore queue wait, setup time, and dispatch latency.
2026-06-19 16:06:17 +02:00
can1357 30c2c35c88 feat(coding-agent/modes): implemented weighted selection for welcome tips
- Added weighted selection logic to bias discovery toward "[NEW]" tips.
- Updated the tip marker regex to allow trailing whitespace.
- Migrated tip selection to use the new biased distribution algorithm.
2026-06-19 16:06:17 +02:00
can1357 e1cd7a6692 perf(coding-agent/extensibility): deferred context allocation in extension runner
- Delay the creation of the extension context until a relevant handler is identified.
- Avoid unnecessary performance overhead for events that have no registered handlers, such as frequent streaming updates.
2026-06-19 16:06:17 +02:00
can1357 a1dae58c34 fix(coding-agent/session): prevented emission of unhandled agent events
- Added an early return to stop event propagation if no handlers are registered for the event type.
- Updated the `agent_start` logic to return early, ensuring consistent flow control.
2026-06-19 16:06:17 +02:00
can1357 9f30e241b5 feat(coding-agent/modes): added animated "NEW!" rainbow tag to tips
- Introduced a "[NEW]" marker in tip text that triggers an animated rainbow-colored tag in the welcome component.
- Implemented `renderNewTag` to calculate cyclic HSL hue offsets based on render timing.
- Updated `renderWelcomeTip` to intelligently wrap the tag at the end of the last line or on a new line to prevent layout overflow.
2026-06-19 16:06:17 +02:00
can1357 0abcd76101 docs(coding-agent-prompts): refined agent instructions and tool documentation
- Simplified system and personality prompts for improved conciseness and clarity.
- Streamlined tool instruction sets and parameter descriptions across all agent modules.
- Refactored prompt documentation in `hashline` to clarify terminology and task-specific constraints.
- Updated tool metadata in TypeScript service definitions to align with reduced documentation verbosity.
2026-06-19 16:06:17 +02:00
can1357 ea7164274c refactor(agent): replaced custom object clone with shared utility
- Removed internal `cloneUnknown` and `cloneToolArguments` functions.
- Switched to `structuredCloneJSON` from shared utils for snapshotting tool call arguments.
2026-06-19 16:06:17 +02:00
can1357 e646b8aa41 feat(skills): added tool prompt optimization tool
- Added `SKILL.md` documenting methodology for auditing and pruning tool prompts based on schema redundancy.
- Implemented `scripts/probe.ts` to perform multi-model, multi-sample inference probes for identifying prune-worthy prompt content.
- Enabled programmatic and CLI-based prompt benchmarking using the `@oh-my-pi/pi-ai` and `pi-catalog` packages.
2026-06-19 16:06:16 +02:00
can1357 cba0ea3b45 chore(coding-agent/scripts): added token usage measurement script
- Added a diagnostic script to calculate and log token consumption for tool schemas and system prompts.
2026-06-19 16:06:16 +02:00
can1357 ab6d1f916b feat(catalog): adjusted GLM-5.2 reasoning effort mapping per host
- Refactor GLM-5.2 effort mapping to accommodate specific requirements for Z.ai, OpenRouter, and general OpenAI-compatible hosts.
- Apply host-specific logic to ensure `xhigh` UI tiers are correctly resolved to the required `max` budget for supported providers.
- Add test coverage verifying expected effort mappings across different model hosts.
2026-06-19 16:06:16 +02:00
can1357 0393bc6697 feat(coding-agent): removed timeout parameter from find tool
- Removed the customizable `timeout` parameter from the tool schema and implementation.
- Fixed the timeout duration to 5 seconds to simplify tool usage.
- Updated documentation and error messages to advise narrowing search patterns instead of adjusting timeouts.
2026-06-19 16:06:16 +02:00
can1357 e47371f631 feat(coding-agent/prompts): refined job tool instructions
- Update job tool prompt for clarity and conciseness.
- Remove redundant implementation details regarding poll timing logic.
2026-06-19 16:06:16 +02:00