@oh-my-pi/pi-coding-agent 12.7.6 → 12.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +37 -37
  2. package/README.md +9 -1052
  3. package/package.json +7 -7
  4. package/src/cli/args.ts +1 -0
  5. package/src/cli/update-cli.ts +49 -35
  6. package/src/cli/web-search-cli.ts +3 -2
  7. package/src/commands/web-search.ts +1 -0
  8. package/src/config/model-registry.ts +6 -0
  9. package/src/config/settings-schema.ts +25 -3
  10. package/src/config/settings.ts +1 -0
  11. package/src/extensibility/extensions/wrapper.ts +20 -13
  12. package/src/extensibility/slash-commands.ts +12 -91
  13. package/src/lsp/client.ts +24 -27
  14. package/src/lsp/index.ts +92 -42
  15. package/src/mcp/config-writer.ts +33 -0
  16. package/src/mcp/config.ts +6 -1
  17. package/src/mcp/types.ts +1 -0
  18. package/src/modes/components/custom-editor.ts +8 -5
  19. package/src/modes/components/settings-defs.ts +2 -1
  20. package/src/modes/controllers/command-controller.ts +12 -6
  21. package/src/modes/controllers/input-controller.ts +21 -186
  22. package/src/modes/controllers/mcp-command-controller.ts +60 -3
  23. package/src/modes/interactive-mode.ts +2 -2
  24. package/src/modes/types.ts +1 -1
  25. package/src/sdk.ts +23 -1
  26. package/src/secrets/index.ts +116 -0
  27. package/src/secrets/obfuscator.ts +269 -0
  28. package/src/secrets/regex.ts +21 -0
  29. package/src/session/agent-session.ts +143 -21
  30. package/src/session/compaction/branch-summarization.ts +2 -2
  31. package/src/session/compaction/compaction.ts +10 -3
  32. package/src/session/compaction/utils.ts +25 -1
  33. package/src/slash-commands/builtin-registry.ts +419 -0
  34. package/src/web/scrapers/github.ts +50 -12
  35. package/src/web/search/index.ts +5 -5
  36. package/src/web/search/provider.ts +13 -2
  37. package/src/web/search/providers/brave.ts +165 -0
  38. package/src/web/search/types.ts +1 -1
  39. package/docs/compaction.md +0 -436
  40. package/docs/config-usage.md +0 -176
  41. package/docs/custom-tools.md +0 -585
  42. package/docs/environment-variables.md +0 -257
  43. package/docs/extension-loading.md +0 -106
  44. package/docs/extensions.md +0 -1342
  45. package/docs/fs-scan-cache-architecture.md +0 -50
  46. package/docs/hooks.md +0 -906
  47. package/docs/models.md +0 -234
  48. package/docs/python-repl.md +0 -110
  49. package/docs/rpc.md +0 -1173
  50. package/docs/sdk.md +0 -1039
  51. package/docs/session-tree-plan.md +0 -84
  52. package/docs/session.md +0 -368
  53. package/docs/skills.md +0 -254
  54. package/docs/theme.md +0 -696
  55. package/docs/tree.md +0 -206
  56. package/docs/tui.md +0 -487
package/CHANGELOG.md CHANGED
@@ -2,51 +2,51 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ## [12.7.5] - 2026-02-16
6
- ### Changed
7
-
8
- - Updated SMOL_MODEL_PRIORITY to include additional model variants (gpt-5.3-spark, cerebras/zai-glm-4.7, haiku-4-5, haiku-4.5) for improved fast model discovery
9
- - Updated SLOW_MODEL_PRIORITY to include additional model variants (gpt-5.3-codex, gpt-5.3, gpt-5.1-codex, gpt-5.1, opus-4.6, opus-4-6, opus-4.5, opus-4-5, opus-4.1, opus-4-1) for improved comprehensive model discovery
10
-
11
- ## [12.7.3] - 2026-02-16
12
-
13
- ### Fixed
14
- - Suppressed hashline output for subagents without the edit tool (e.g. explore agents)
5
+ ## [12.8.0] - 2026-02-16
15
6
 
16
- ## [12.7.1] - 2026-02-16
17
7
  ### Changed
18
-
19
- - Restructured execution procedure guidance to emphasize scope assessment and continuous tool-driven progress over planning-first approach
20
- - Updated task tracking instructions to prohibit metadata-only turns and require immediate completion marking of todo items
21
- - Clarified parallel execution guidance to distinguish between genuine parallelization and sequential work, with explicit criteria for Task tool usage
22
- - Modified output style requirements to mandate stating intent before tool calls and reordered style constraints for clarity
23
- - Reinforced requirement that every turn must include at least one tool call advancing the deliverable, with explicit failure condition for planning-only turns
8
+ - Improved `/changelog` performance by displaying only the most recent 3 versions by default, with a `--full` flag for the complete history ([#85](https://github.com/can1357/oh-my-pi/pull/85) by [@tctev](https://github.com/tctev))
9
+ - Centralized builtin slash command definitions and handlers into a shared registry, replacing the large input-controller if-chain dispatch
24
10
 
25
11
  ## [12.7.0] - 2026-02-16
26
12
  ### Added
13
+ - Added abort signal support to LSP file operations (`ensureFileOpen`, `refreshFile`) for cancellable file synchronization
14
+ - Added abort signal propagation through LSP request handlers (definition, references, hover, symbols, rename) enabling operation cancellation
15
+ - Added `shouldBypassAutocompleteOnEscape` callback to custom editor for context-aware escape key handling during active operations
16
+ - Added `contextPromotionTarget` model configuration option to specify a custom target model for context promotion
17
+ - Added automatic context promotion feature that switches to a larger-context model when approaching context limits
18
+ - Added `contextPromotion.enabled` setting to control automatic model promotion (enabled by default)
19
+ - Added `contextPromotion.thresholdPercent` setting to configure the context usage threshold for triggering promotion (default 90%)
20
+ - Added Brave web search provider as an alternative search option with recency filtering support
21
+ - Added `BRAVE_API_KEY` environment variable support for Brave web search authentication
22
+ - Added pagination support for fetching GitHub issue comments, allowing retrieval of all comments beyond the initial 50-comment limit
23
+ - Added comment count display showing partial results when not all comments could be fetched (e.g., '5 of 10 comments')
24
+ - Added secret obfuscation: env vars matching secret patterns and `secrets.json` entries are replaced with placeholders before sending to LLM providers, deobfuscated in tool call arguments
25
+ - Added `secrets.enabled` setting to toggle secret obfuscation
26
+ - Added full regex literal support for `secrets.json` entries (`"/pattern/flags"` syntax with escaped `/` handling, automatic `g` flag enforcement)
27
+ ### Changed
28
+ - Changed context promotion to trigger on context overflow instead of a configurable threshold, promoting to a larger model before attempting compaction
29
+ - Changed context promotion behavior to retry immediately on the promoted model without compacting, providing faster recovery from context limits
30
+ - Changed default grep context lines from 1 before/3 after to 0 before/0 after for more focused search results
31
+ - Changed escape key handling in custom editor to allow bypassing autocomplete dismissal when specified by parent controller
32
+ - Changed workspace diagnostics to support abort signals for cancellable diagnostic runs
33
+ - Changed LSP request cancellation to send `$/cancelRequest` notification to language servers when operations are aborted
34
+ - Changed input controller to bypass autocomplete on escape when loading animations, streaming, compacting, or running external processes
35
+ - Changed context promotion logic to use configured `contextPromotionTarget` when available, allowing per-model promotion customization
36
+ - Updated session compaction reserve token calculation to enforce a minimum 15% context window floor, ensuring more predictable compaction behavior regardless of configuration
37
+ - Improved session compaction to limit file operation summaries to 20 files per category, with indication of omitted files when exceeded
38
+ - Updated CLI update mechanism to support multiple native addon variants per platform, enabling fallback to baseline versions when modern variants are unavailable
39
+ - Updated web search provider priority order to include Brave (Exa → Brave → Jina → Perplexity → Anthropic → Gemini → Codex → Z.AI)
40
+ - Extended recency filter support to Brave provider alongside Perplexity
41
+ - Changed GitHub issue comment fetching to use paginated API requests with 100 comments per page instead of single request with 50-comment limit
42
+ ### Removed
27
43
 
28
- - Added Z.AI web search provider support via remote MCP endpoint (webSearchPrime)
29
- - Added `zai` as a selectable web search provider option in settings
30
- - Added Z.AI to automatic provider fallback chain for web search
31
-
32
- ## [12.6.0] - 2026-02-16
33
- ### Added
34
-
35
- - Added runtime tests covering extension provider registration and deferred model pattern resolution behavior.
36
-
37
- ### Changed
38
-
39
- - Improved welcome screen responsiveness to dynamically show or hide the right column based on available terminal width
40
- - Extended extension `registerProvider()` typing with OAuth provider support and source-aware registration metadata.
44
+ - Removed `contextPromotion.thresholdPercent` setting as context promotion now triggers only on overflow
41
45
 
42
46
  ### Fixed
43
-
44
- - Fixed welcome screen layout to gracefully handle small terminal widths and prevent rendering errors on narrow displays
45
- - Fixed welcome screen title truncation to prevent overflow when content exceeds available width
46
- - Fixed deferred `--model` resolution so extension-provided models are matched before fallback selection and unresolved explicit patterns no longer silently fallback.
47
- - Fixed CLI `--api-key` handling for deferred model resolution by applying runtime API key overrides after extension model selection.
48
- - Fixed extension provider registration cleanup to remove stale source-scoped custom API/OAuth providers across extension reloads.
49
-
47
+ - Fixed LSP operations to properly respect abort signals and throw `ToolAbortError` when cancelled
48
+ - Fixed workspace diagnostics process cleanup to remove abort event listeners in finally block
49
+ - Fixed PTY-backed bash execution to enforce timeout completion when detached child processes keep the PTY stream open ([#88](https://github.com/can1357/oh-my-pi/issues/88))
50
50
  ## [12.5.1] - 2026-02-15
51
51
  ### Added
52
52