Commit Graph

9 Commits

Author SHA1 Message Date
can1357 bc39ffa265 feat: introduced omptype validation package and migrated workspace dependencies
- Introduce `@oh-my-pi/omptype` as a new ArkType-compatible schema validation package featuring a lazy JIT runtime, JSON Schema emission, and compatibility adapters.
- Replace `arktype` across workspace packages and test utilities with `@oh-my-pi/omptype`.
- Add benchmark suites, tests, and documentation for the new validation engine and adapters.
- Update workspace build, test runner, and release configurations to include the new package.
2026-08-03 21:56:48 +02:00
can1357 a872d77068 chore: cleanup dumb tests 2026-08-02 20:39:23 +02:00
Hesham Salman 7f7e742db6 fix(coding-agent): preserve parent todos in vibe mode 2026-07-27 13:52:25 -04:00
roboomp c8ef3cc8ff fix(coding-agent): handled vibe session commands safely
Blocked interactive session transitions before they reach the AgentSession vibe guard, preserving the active session and rendering the existing exit-vibe warning instead of rejecting the input callback.

Added regression coverage for new, drop, fork, and move transitions.

Fixes #6607
2026-07-25 11:57:53 +00:00
roboomp 122ab2a4ef fix(coding-agent): resolve restored vibe workers against session model
#vibeParentSession() omitted getActiveModelString, so on resume/switch
#reconcileModeFromSession -> VibeSessionRegistry.rehydrate() ->
#resolveWorker() fell back to the settings default model. A reopened or
switched-to session whose active model came from the journal or a
non-default launch therefore resolved the good (pi/task) worker on the
wrong model. Wire getActiveModelString from the session's active model,
matching the spawn-path ToolSession and sdk's dispose-path helper.

Fixes #5303
2026-07-15 00:19:36 +00:00
roboomp 709066b7a1 fix(coding-agent): preserve target tools when switching out of vibe
#clearTransientModeState's vibe branch runs only from
#reconcileModeFromSession, after switchSession has already loaded and
restored the target session's active tools. It called
deactivateVibeTools(#vibeModePreviousTools), which SETS the active tool
set to that snapshot — but the snapshot belongs to the SOURCE session,
so switching to a non-vibe (or different vibe) target clobbered the
target's tools. Add AgentSession.removeVibeToolsPreservingActive(), which
strips only the transient vibe tools and keeps the current active set,
and use it on the switch path. The live-exit path (#exitVibeMode) still
restores its own snapshot.

Fixes #5303
2026-07-14 23:58:30 +00:00
roboomp 4bc68b45e2 fix(coding-agent): persisted vibe sessions across restarts
Vibe worker roster lived only in a process-local Map, so a resumed parent
session started with an empty registry and vibe_send failed with
"Unknown vibe session". Persist a versioned, parent-scoped lifecycle
journal (spawn/turn/tombstone events), rehydrate validated idle workers
through the persisted-subagent reviver on resume, and gate the flow with
generation/CAS protection so stale finalizers cannot clobber a
replacement worker. Killed transcripts stay readable but non-revivable;
mode-exit commits tombstones atomically with the mode change and rolls
back cleanly on storage failure.

Ported from @mastertyko's fork branch fix/vibe-session-persistence.

Fixes #5303
2026-07-14 17:58:14 +00:00
can1357 46fd8c5575 feat(coding-agent): improved vibe mode tool lifecycle management
- Transitioned vibe tools to an ephemeral registration model where they are installed only when entering `/vibe` mode and removed upon exit.
- Added `activateVibeTools` and `deactivateVibeTools` methods to `AgentSession` to manage these transient tool registrations.
- Removed vibe tools from the default global tool registry, preventing unnecessary background exposure.
2026-07-11 07:33:20 +02:00
can1357 aa2c580b22 feat(coding-agent): implemented dynamic rendering and state syncing
- Improved real-time screen rendering by implementing dynamic builder functions for vibe mode components.
- Optimized cursor and spinner rendering to re-derive state from shared mutable options on every paint.
- Added session snapshotting and improved wait logic to accurately detect settled turns and running sessions.
- Ensured reliable toolset restoration during mode transitions through updated logic and new contract tests.
2026-07-11 05:47:56 +02:00