Commit Graph

18664 Commits

Author SHA1 Message Date
can1357 b9cfff73ec refactor(coding-agent/modes): removed todo bar collapse animation
- Removed the todo bar collapse timer and related animation logic from interactive mode.
- Simplified todo list rendering by removing collapse fraction calculations.
2026-08-20 08:05:22 +02:00
can1357 ddf86666de feat(coding-agent/session): introduced speculative session compaction thresholds
- Add `deferThresholdCompactionToSpeculation` to absorb blocking threshold passes within a grace band.
- Start background speculation automatically when a jump skips the pre-threshold band.
- Stop deferring and resume blocking compaction once context growth reaches the grace cap or async options are disabled.
2026-08-20 08:03:47 +02:00
can1357 51fb19a9b1 chore: reformat 2026-08-20 08:03:05 +02:00
can1357 7cb504cdb3 feat(ai/providers): dropped auto tool choice for reasoning models
- Add `shouldDropAutoToolChoiceForReasoning` helper to handle compatibility constraints for models where tool choice disables reasoning.
- Update OpenAI completions and responses parameter building to drop automatic tool choices when reasoning options are active.
2026-08-20 08:02:49 +02:00
can1357 57305b99cd feat(coding-agent): added /extended-context slash command and pass settings to model registry
- Add the `/extended-context` builtin slash command to toggle premium long-context windows.
- Update `ModelRegistry` to accept settings and apply context-window caps using the finalized configuration.
- Add tests covering extended context toggle behavior and session context window capping.
2026-08-20 08:00:23 +02:00
can1357 ce94be2b93 fix(pi-shell/minimizer): preserved failure details for non-tty bun test runs
- Support non-TTY `(pass)` and `(fail)` markers, error codes, and code frame lines in test failure filtering.
- Prevent unrecognized failure formats from collapsing to bare summary counts by falling back to head and tail lines.
2026-08-20 07:55:02 +02:00
can1357 858c3a9ef0 feat(catalog): added supportsHashlineEdits helper and exclude step-3.7-flash models
- Added supportsHashlineEdits catalog function and Step 3.7 Flash SKU recognition.
- Updated coding agent edit resolution to utilize the centralized catalog function.
- Updated write snapshot generation to record empty seen-line provenance.
2026-08-20 07:54:45 +02:00
can1357 df0bb6e31a feat: implemented provider wire codecs and optimized telemetry and parsing
- Added internal protobuf wire codecs, message builders, and protocol definitions for Cursor and Devin providers.
- Deferred loading of OTel SDK and OTLP exporters and added bounded caches to optimize startup and lookup performance.
- Added SQLite-backed parse caching for legacy extension source analysis and streaming file chunk parsing for changelogs.
- Added support for rendering context usage overflow above 100% in the status line component.
2026-08-20 07:54:06 +02:00
can1357 d820cf75bb feat: implemented token tracking and metadata options for compaction summaries
- Added `CompactionSummaryMessageOptions` interface to support optional fields and metadata in compaction summary messages.
- Included compaction method labels and before-after amount badge rendering in compaction views.
- Updated session maintenance and compaction methods to track and compute post-compaction token counts.
- Updated calls across agent and coding-agent packages to use the new compaction options object.
2026-08-20 07:18:43 +02:00
can1357 6740f146b0 style(tui): matched context window label color to compaction marker 2026-08-20 06:48:28 +02:00
can1357 1f526ed5d3 test(coding-agent): updated test harnesses for composer shape methods
- Add syncComposerShape and getComposerShapes stubs to test mocks and harnesses.
2026-08-20 06:38:51 +02:00
can1357 184058f11a test(agent): added tests for compaction speculation and preview rendering
- Added tests for async compaction behavior, snapcompact leading, and discarded armed summaries.
- Added tests verifying status line context cache behavior, speculation ticks, and border accents.
- Updated composer shape preview, todo HUD, and yield tool validation tests to reflect current behavior.
- Added test coverage for session name preview title fallbacks and right alignment.
2026-08-20 06:36:44 +02:00
can1357 6226f7457c feat(tui): implemented top border truncation and exported rule module
- Add top border truncation in renderTopRule to handle narrow terminals gracefully.
- Export rule module consistently in index.
2026-08-20 06:36:43 +02:00
can1357 2c588d8750 docs(extensions): documented composer shape renderer and styling contract
- Document the `registerComposerShape` API method for adding input-editor layouts.
- Detail the `ComposerStyle` layout metadata properties and rendering methods.
- Provide a full implementation example demonstrating custom composer styling and registration.
2026-08-20 06:36:43 +02:00
can1357 a02da243e7 feat(agent): implemented preview titles and session compaction logic
- Added preview title support and fallback handling across shape previews and status line segments.
- Refined session list sizing and line height budgets in the session selector component.
- Extracted session compaction method helpers and improved speculative compaction logic.
- Prevented armed LLM speculation results from overriding local snapshot compaction execution.
2026-08-20 06:36:43 +02:00
can1357 43a557081f feat: introduced custom composer styles and runtime extension registration
- Added new field, rail, and rule composer styles with accent and surface color support.
- Introduced runtime extension registration for custom composer shapes and styles.
- Updated status line rendering and theme adapters to support dynamic composer styling and gaps.
- Added comprehensive unit tests for new composer shapes, extension loading, and rendering behaviors.
2026-08-20 06:11:57 +02:00
can1357 baf894425c feat(ai): enabled container-to-string coercion for union branches
- Enable stringification repairs for expected types in union branches.
- Update test to expect successful string coercion for objects in string union branches.
2026-08-20 06:11:48 +02:00
can1357 d8cad583e5 chore: rewritten changelog 2026-08-20 06:03:49 +02:00
can1357 63b1146064 feat(coding-agent/tools): added image and binary file support to github file-read
- Switch github file-read tool to request json contents and handle base64 encoding.
- Add support for parsing image attachments and detecting binary files from github contents.
2026-08-20 05:52:02 +02:00
can1357 bd5764aad4 feat(coding-agent): integrated subscription status icons and advisor tracking
- Added theme icons and formatting for subscription status and advisor tracking across status lines and footers.
- Implemented `isAdvisorUsingSubscription` and `isUsingSubscription` methods to check active models against OAuth usage.
- Updated status line model segments to display the new advisor icon instead of text badges.
- Added comprehensive tests covering subscription and advisor costs across multiple font presets.
2026-08-20 05:51:53 +02:00
can1357 e8d7c0a493 feat: introduced pluggable composer layouts and status line gauge modes
- Introduced embedded mode and context gauge render options for the status line alongside boundary calculation helpers.
- Added pluggable composer styles with a style registry supporting box, claude, pi, and borderless layout rendering.
- Extracted speculation lead resolution into a dedicated shared module and added theme symbol definitions.
- Expanded test coverage for status line context gauge modes, composer shape previews, and editor style assertions.
2026-08-20 05:41:42 +02:00
can1357 aeed1e6195 refactor(coding-agent): extracted shared auto-backgrounding and job wait helpers
- Extract foreground wait, notice formatting, and settlement racing logic into a shared module.
- Update async job type definitions to support eval jobs alongside bash and task jobs.
- Add configuration settings for eval auto-background thresholds.
2026-08-20 05:17:47 +02:00
can1357 77930e467e feat(coding-agent/modes): rendered todo list progress in tree spine
- Moved the overall todo list progress indicator from a horizontal header bar into the tree spine and closing tail.
- Drains the accent fill upward along the spine path when tasks close rather than shrinking a progress bar.
2026-08-20 05:17:06 +02:00
can1357 3ef3b43b49 feat: introduced customizable composer shapes and status line rendering options
- Add support for customizable composer shapes and editor border styles including box, claude, pi, and borderless.
- Introduce a setup wizard scene and settings selector integration for choosing and previewing composer shapes.
- Enhance status line rendering to support standalone placement and context usage percentage shading.
- Add comprehensive unit tests covering composer shape previews, editor border styles, and status line rendering.
2026-08-20 05:06:17 +02:00
can1357 14992fbc41 fix(ai): disabled lossy argument repairs on failed union branches
- Prevent schema validation from applying lossy repairs such as container stringification and key deletion to values diagnosed within failed `anyOf` and `oneOf` branches.
- Remove the `coerceArguments` tool option and let repair provenance dictate whether lossy coercions are allowed.
2026-08-20 05:01:49 +02:00
can1357 65b358dda3 feat(coding-agent): updated todo hud header text and tests
- Update interactive mode todo header from Todos to TODO.
- Adjust corresponding unit tests to verify the new header text.
2026-08-20 04:47:43 +02:00
can1357 2d56a37334 refactor(coding-agent): standardized ui dialogs to use overlay panel base
- Introduce OverlayPanel and PanelDivider classes to standardize rounded-box inline overlays and section rules.
- Migrate various UI dialog, selector, and panel components to inherit from OverlayPanel instead of Container.
- Remove manual DynamicBorder elements and custom title/header components across migrated components.
- Update test helpers and assertions to match the new overlay panel structure and rendering methods.
2026-08-20 04:47:33 +02:00
can1357 072f1a8034 feat(coding-agent/cli): implemented interactive process monitor and data helpers
- Added shared process data collection and table formatting helpers to support rendering.
- Added an interactive alt-screen TUI monitor for bare `omp ps` executions on TTYs.
- Added a `--plain` flag to force static process listing output.
2026-08-20 04:43:35 +02:00
can1357 e9acc575a7 feat(coding-agent/cli): implemented ps command for daemon processes
- Added a new ps command to list, inspect, view logs, and control daemon processes.
- Implemented CLI handlers and help metadata supporting daemon process operations.
- Added helpers for managing daemon scope metadata, paths, and live broker PIDs.
2026-08-20 04:41:24 +02:00
can1357 d7fbb503d8 feat(ai): exposed catalog metadata in auth gateway model list
- Added context length, max tokens, input modalities, and tool support flags to GET /v1/models response in auth gateway server.
- Updated auth gateway model list tests to verify catalog metadata fields in output rows.
2026-08-20 04:38:56 +02:00
can1357 042f27f5e4 fix(agent): stopped arg coercion from corrupting subagent yield payloads
- Added Tool.coerceArguments (default true); false skips every LLM-quirk
  repair pass (object->string stringification, unrecognized-key deletion,
  JSON-string parsing) so validation runs verbatim.
- YieldTool opts out: its args are the deliverable, and the repair layer
  silently stringified object payloads into string-typed schema fields
  while bypassing yield's own validate-and-retry loop.
- Losslessly salvaged weak-caller envelopes observed in session traces:
  type:"result" without the result wrapper finalizes as last-turn,
  top-level data/error are wrapped, and JSON-string result/data parse
  before consuming a schema retry.
2026-08-20 04:38:02 +02:00
can1357 7e54061cbb chore(bazel): generated clippy config from workspace lints at release time
- Added scripts/gen-clippy-bazelrc.ts: emits bazel/clippy.bazelrc from
  [workspace.lints] in Cargo.toml (groups by ascending priority, then
  per-lint overrides, alphabetical within each tier); --check mode
  verifies sync without writing.
- release.ts regenerates it alongside the lockfiles; the release_gate CD
  job runs the --check so drift only blocks publishing, never ordinary
  CI. Added the gen:clippy package script.
2026-08-20 04:18:26 +02:00
can1357 ac5500beda feat(coding-agent): introduced interactive cleanse command and mode interface
- Introduce CleanseBoardModel and clean up status board rendering logic.
- Decouple CLI and interactive modes with CleanseRunUi interface and core runner.
- Add CleansePanelComponent and controller to manage interactive cleanse overlay.
- Register builtin `/cleanse` slash command and integrate into interactive mode.
2026-08-20 04:15:54 +02:00
can1357 8e93f76d4a chore(bazel): synced redundant_pub_crate allow into generated clippy config
bazel/clippy.bazelrc lagged Cargo.toml [workspace.lints.clippy], so the
strict bazel clippy pass denied redundant_pub_crate on utok while cargo
clippy passed locally.
2026-08-20 04:13:19 +02:00
can1357 2f3bfa4ff0 style(natives): rustfmt cleanup after utok clippy pass 2026-08-20 04:07:43 +02:00
can1357 d8d02d12c7 feat(coding-agent/modes): added lint and type error cleanup tip
- Add a tip for the `omp cleanse` command to help users manage diagnostics and fix errors.
2026-08-20 04:05:53 +02:00
can1357 90ac96242f chore: clippy 2026-08-20 04:05:49 +02:00
can1357 2f54e760c1 feat(coding-agent): added async compaction and in-place handoff
- Added compaction.asyncEnabled (Async Compaction, default on): when
  context enters the pre-threshold band [threshold - lead, threshold)
  with lead = clamp(threshold * 0.125, 8192, 32000), maintenance
  speculatively summarizes in the background off a branch snapshot
  (first configured LLM-backed method: remote, handoff, or soft) using
  a side session id isolated from the live turn. Crossing the threshold
  splices the armed result in instantly instead of blocking on a
  summarization round-trip. Armed results are invalidated by branch
  changes, reset boundaries, model switches that strand provider-native
  replay payloads, and context growth past keepRecentTokens (which
  re-speculates); extensions registering session_before_compact keep
  exact blocking semantics (speculation disabled).
- Reworked handoff to commit in place: /handoff and the auto handoff
  method now write the generated document as a regular compaction entry
  on the current session (summary = document + <files> tag, cut from
  prepareCompaction) instead of starting a new session. SessionHandoff
  shrank to a document generator; session_before_switch/session_switch
  no longer fire with reason "handoff"; mid-turn maintenance no longer
  suppresses the handoff preference; overflow recovery can apply an
  armed handoff result.
- Extracted the shared auto-compaction commit tail
  (#commitAutoCompactionResult / #commitCompactionEntry) used by the
  blocking production path, the armed speculative apply, manual
  compaction, and manual handoff.
- Status line pulses the auto-compact icon while a speculation runs and
  holds it in accent once a result is armed.
- Exported remotePreserveReusable from pi-agent-core/compaction for
  apply-time validation of speculative remote results.
2026-08-20 03:46:34 +02:00
can1357 eced7ab08a feat: implemented live status board utility and agent progress tracking
- Implement a live status board utility for transient multi-line CLI status displays with TTY fallback support.
- Add progress callback support and forward subagent progress events to runner hooks.
- Update cleanse execution flow to track checker runs, agent progress, and status rendering.
- Add comprehensive unit tests for live board repainting and cleanse progress assertions.
2026-08-20 03:22:54 +02:00
can1357 1088cc349c feat: implemented tree-sitter AST queries and landing correction for blocks
- Added `NodeSpan` struct and `nodeChainAt` function in `pi-ast` with native bindings to query AST node chains by line.
- Replaced regex-based annotation parsing with tree-sitter node queries and addedconstruct relocation validation.
- Implemented opener-escape landing correction for inserts anchored on block openers along with warning messages.
- Added comprehensive unit and integration tests covering node chain resolution and escape behavior.
2026-08-20 03:16:05 +02:00
can1357 12591dbde3 refactor: restructured streaming output with configurable buffering
- Introduced `StreamWriter` with configurable block and line buffering policies across builtins.
- Updated pipeline stages and compound commands to execute concurrently as tasks.
- Replaced Linux splice and local stream wrapping with generic `Write` streams and explicit flushing.
- Added regression and streaming smoke tests to verify concurrent output and prevent deadlocks.
2026-08-20 03:14:09 +02:00
can1357 ee4a1d48b7 feat(coding-agent/prompts): added instruction for handling user-reported state
- Add a directive instructing the agent to treat user-reported state as absolute ground truth.
2026-08-20 03:04:28 +02:00
can1357 5347ff91e8 feat(coding-agent/modes): added collapse animation for todo header bar
- Implemented an animated collapse effect for the interactive mode todo header bar when tasks settle.
- Added timer management and render loop updates for the todo bar collapse transition.
2026-08-20 03:04:23 +02:00
can1357 8c35861d96 feat(coding-agent): implemented ordered compaction fallback and settings
- Replaced legacy `compaction.strategy` and `remoteEnabled` settings with `compaction.methodOrder` across session maintenance, schema, and tests.
- Added automatic fallback mechanism to try subsequent compaction methods upon failure or unsupported model capabilities.
- Added mouse drag-and-drop reordering support and click handlers to multi-select settings submenus.
- Updated documentation and test suites to reflect ordered compaction strategy preferences and fallback chains.
2026-08-20 02:59:49 +02:00
can1357 6d2bae2c41 feat: implemented long-context pricing and configuration support
- Added long-context pricing tiers and billing policies for subscription Codex models in the catalog.
- Introduced the `extendedContext` configuration setting to control premium long-context windows.
- Implemented runtime policy refresh and model re-binding when context settings change.
- Added comprehensive unit tests for pricing tiers, context capping, and policy toggling behavior.
2026-08-20 02:47:32 +02:00
can1357 577c0d795f fix(hashline): corrected single-line annotation boundary handling and raised snapshot capacity
- Added annotation row detection to reject under-filled one-sided echoes on single-line replacement ranges.
- Raised default snapshot store path capacity from 30 to 256 to prevent early tags from aging out in wide sessions.
- Added comprehensive test suites verifying boundary repair for single-line annotations and snapshot LRU retention.
2026-08-20 02:38:07 +02:00
can1357 edc0caeb0f feat(builtins): sweep of GNU/BSD compat fixes + str performance opts
Addresses a broad audit of built-in shell utilities against their real counterparts: timeout gains signal delivery, -s/-k/--preserve-status/--foreground/-v, and GNU exit codes; diff defaults to normal format and gains -w/-b/-B/-i/-c/-x/-L/-s/--strip-trailing-cr and proper -r gating; find fixes -newerXY timestamp comparison direction, anchors -regex to whole paths, and gains BSD -perm +mode, -type lists, -size T/P suffixes, -E/-x/-s flags; date gains BSD -r epoch, -v adjustments, -j -f strptime, and non-greedy -I; tail/head accept obsolete -N/+N at any position with any file count; rg resolves case flags by last occurrence and gains --path-separator and clean -0 output; stat prints integer epochs for %X/%Y/%Z and gains BSD -s/-x/-t; cksum is registered as a builtin; truncate implements -o/--io-blocks and b/= size suffixes; sleep/timeout accept infinity; yes/errno/kill accept hyphen-prefixed operands; nohup -- cmd no longer runs --; which gains BSD -s.
2026-08-20 02:33:10 +02:00
can1357 219aae1303 feat(coding-agent): added summed progress bar and stage overflow summary to todo HUD
- Replaced the stage-position counter in the todo HUD header with a summed progress bar counting closed and total tasks across all stages.
- Added a trailing overflow summary row to announce hidden stages past the collapsed cap.
- Introduced theme symbol support for filled and empty progress bar glyphs across unicode, nerd, and ascii presets.
2026-08-20 01:50:28 +02:00
can1357 0cdd37fc15 feat(pi-natives/tools): implemented utok tokenizer for multiple models
- Replaced the `ctok` implementation with the `utok` universal tokenizer supporting multiple model families and UTF text encodings.
- Added tokenizer support and embedding data for Qwen3, DeepSeek V3, Kimi K2, and GLM-5 model variants.
- Added fixture generation scripts, vocabulary packers, and golden test suites for validating tokenization parity.
- Updated dependency requirements and Bazel workspace definitions for new crates and tools.
2026-08-20 01:45:04 +02:00
can1357 37fd2dbbe1 feat(coding-agent): restored cancelled or preflight-denied prompts to editor
- Add `setPromptDropped` hook and `DroppedPrompt` type to return prompts that were cancelled during turn setup before dispatch.
- Restore dropped prompt text and image attachments to the interactive mode editor and remove the optimistic transcript row.
2026-08-20 00:02:41 +02:00