| Fix review custom instructions submission
| 7 天前 |
| refactor(shake): removed shake-summary mode and local-model compressor
- Dropped summarizeShakeRegions, the shake-summary prompt, and related types.
- Removed shake-summary compaction strategy and providers.shakeSummaryModel setting.
- Migrated existing shake-summary configs to plain shake on load.
- Simplified /shake to elide and images modes only.
| 1 天前 |
| fix(coding-agent): process @file before session creation; drop built-in flag-name list
Two review fixes for the extension-flag/initial-prompt work:
1. @file ordering — processFileArguments runs process.exit(1) on a
missing/unreadable file. It had been moved after createSession, which
writes the terminal breadcrumb eagerly (SessionManager.create →
#newSessionSync), so omp @missing.md "x" left a junk session/breadcrumb
behind before exiting.
Resolve extension-registered CLI flags BEFORE creating the session: load the
session's extensions up front (new loadSessionExtensions helper, the single
source of createAgentSession's discovery-branch logic), build an
ExtensionFlagSink straight from the loaded extensions + runtime, re-parse
argv, then process @file args — all before any session exists. The loaded
result is handed back to createAgentSession via preloadedExtensions (now
checked before disableExtensionDiscovery, so it can't double-load) and the
same EventBus is shared, so no extra work. This keeps the P1#1 fix
(--flag @value is the flag's value, not a file) while failing fast with no
session side effects.
2. "Can we avoid the big list of names?" — removed the hand-maintained
BUILTIN_FLAG_NAMES set (and its stale "rejected at registration" doc).
applyExtensionFlags now always falls back to recovering a flag's value from
argv when parseArgs didn't surface it; the recovery scan mirrors parseArgs's
consumption rules (flag-looking space-form values stay their own flag) and is
a no-op for flags that were absent or already surfaced, so no list of
built-in names is needed.
Adds ExtensionRunner.aggregateFlags (static) so getFlags and the CLI's
pre-session sink share one implementation.
Tests: pre-session flag resolution via the exact main.ts sink pattern;
list-free recovery of an arbitrary colliding built-in (--model); and the
flag-looking-value rule. Verified typecheck + extension/runner/acp suites.
| 1 天前 |
| Fix review custom instructions submission
| 7 天前 |
| refactor(mnemosyne/core): typed embedding provider outputs and tightened normalization
- Defined EmbeddingRow and EmbeddingOutput in runtime options and exported them from core embeddings.
- Updated EmbeddingProvider, MnemosyneEmbeddingProvider, and provider runtime option types to return EmbeddingOutput instead of unknown.
- Refactored embedding result normalization to accept typed rows and sync/async batches and coerce them into validated Float32Array vectors.
| 1 天前 |
| fix(extensibility): redirected legacy pi-ai root imports through Type-compat shim
Plannotator-class legacy extensions still import Type from
@(scope)/pi-ai (e.g. @earendil-works/pi-ai rewritten to
@oh-my-pi/pi-ai). pi-ai 15.1.0 removed the root Type runtime
export, so extension load crashed with Export named 'Type' not found
even though the @sinclair/typebox Zod-backed shim still ships in the
coding agent.
Routed bare @oh-my-pi/pi-ai root specifiers — used by both the
mirrored-source rewriter and the Bun.plugin onResolve hook — through a
new sibling shim that re-exports the canonical pi-ai surface plus the
Type runtime from the existing TypeBox shim. Subpath imports such as
@oh-my-pi/pi-ai/utils/oauth continue to resolve directly against the
bundled pi-ai package.
Fixes #1437
| 5 天前 |
| fix(cli): routed legacy pi-coding-agent imports through a sibling shim
Listing the coding-agent's own ./src/index.ts as a bun --compile extra entrypoint silently breaks the CLI binary startup. Added a dedicated legacy-pi-coding-agent-shim.ts that re-exports the canonical barrel, registered the shim instead of the package index, and updated the compat resolver to point pi-coding-agent at the shim path.
| 3 天前 |
| refactor(shake): removed shake-summary mode and local-model compressor
- Dropped summarizeShakeRegions, the shake-summary prompt, and related types.
- Removed shake-summary compaction strategy and providers.shakeSummaryModel setting.
- Migrated existing shake-summary configs to plain shake on load.
- Simplified /shake to elide and images modes only.
| 1 天前 |
| feat(coding-agent): added hidden skill flag for system prompt filtering
- Added optional hide metadata to skill capabilities so SKILL.md frontmatter intent is preserved when skills are loaded.
- Filtered system prompt skill rendering to exclude hide: true skills from the <skills> listing while keeping them loadable.
| 18 天前 |
| refactor(prompt-templates): migrated prompt utilities to pi-utils package
- Extracted prompt rendering and formatting utilities from coding-agent to centralized pi-utils package with new API surface (prompt.render, prompt.format, prompt.registerHelper).
- Migrated parseFrontmatter utility from coding-agent to pi-utils package; updated 8 files to import from @oh-my-pi/pi-utils.
- Removed 170-line prompt-format.ts module and consolidated 192 lines of Handlebars helper registrations into pi-utils prompt module.
- Updated 60+ files across coding-agent and typescript-edit-benchmark to use new prompt.render() and prompt.format() API from pi-utils.
- Simplified prompt-templates.ts by delegating core functionality to pi-utils while retaining custom helper registrations (jtdToTypeScript, jsonStringify, etc.).
| 1 个月前 |
| refactor(coding-agent/extensibility): extracted tool proxy logic into reusable applyToolProxy utility function
- Extracted tool property proxying logic into a new applyToolProxy utility function to reduce duplication across wrapper classes.
- Simplified wrapper class implementations by replacing manual property assignments with declarative property forwarding via applyToolProxy.
- Converted explicit property declarations to declare statements and lazy getters that delegate to the underlying tool object.
- Removed renderCall and renderResult method declarations from wrapper classes, consolidating rendering logic handling in the tool-proxy module.
| 3 个月前 |
| fix(ai): decontaminate leaked Zod schema instances to valid JSON Schema
Rewrites JSON-roundtripped Zod 4 schema objects that leak Zod internals as
JSON Schema keywords (e.g., type:"enum", enum:{...}) into valid
JSON Schema 2020-12. This prevents validation failures when such schemas
are used as tool input schemas (e.g., from MCP servers).
Updates isZodSchema to reject deserialized Zod impostors that retain
_zod but lose their prototype.
Wires toJSON methods onto TypeBox shim schemas to ensure JSON.stringify
produces clean JSON Schema, preventing future leaks.
Fixes #1101
| 13 天前 |
| refactor: improve path handling with normalization refactor
- Refactor path normalization to combine expandPath and normalizeLocalScheme
- Add validation in utils.ts to reject local:// paths as filesystem paths
- Fix bash-skill-urls regex to handle hyphen-prefixed local:/ patterns
- Add tests for hyphen-prefixed and @local: patterns
| 1 个月前 |