liu-qingyuan
7bfbea1a06
fix(tmux): prefer split-or-defer with FIFO deferred attach
2026-02-20 07:09:49 +08:00
YeonGyu-Kim
b66d338c59
test(models): sync librarian fallback expectation
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
0af912a87d
feat(ultrawork): implement per-message model override with deferred DB retry strategy
...
- Add per-message ultrawork mode detection via keyword matching
- Implement deferred DB override strategy using microtask retry loop
- Fall back to setTimeout after 10 microtask retries for robustness
- Update agent configuration schema with ultrawork model/variant fields
- Integrate with chat.message hook to apply overrides on detection
- Add comprehensive tests for all override scenarios
- Generated schema includes ultrawork configuration
🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
cb2519f44f
refactor(models): expand provider listings for robust fuzzy matching
...
Add alternative providers to free-tier and cross-provider models:
- k2p5: add friendli as alternative to kimi-for-coding
- kimi-k2.5-free, minimax-m2.5-free, big-pickle, gpt-5-nano: add opencode-zen-abuse
- grok-code-fast-1: add venice as alternative to github-copilot
- glm-5: add opencode as alternative to zai-coding-plan
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
327de261a2
refactor(atlas): remove gemini-3-pro from fallback chain
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
5ff9d66788
refactor(multimodal-looker): reorder fallback to k2p5 → kimi-free → gemini-flash → gpt-5.2 → glm-4.6v
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
035a213dec
refactor(explore): add minimax-m2.5-free as #2 fallback after grok-code-fast-1
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
fa8a24b0af
refactor(librarian): switch fallback to minimax-m2.5-free → gemini-3-flash → big-pickle
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
94611a9f93
refactor(models): upgrade zai-coding-plan default from glm-4.7 to glm-5
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
fd67e6aff5
feat(prometheus): add GPT-5.2 optimized prompt with model-based routing
...
- Create gpt.ts with XML-tagged, principle-driven prompt (Codex plan mode style)
- Add getPrometheusPrompt() routing: GPT models → GPT prompt, others → default
- Promote gpt-5.2 (high) to #2 in prometheus fallback chain
- Follow Atlas GPT variant pattern (isGptModel detection)
2026-02-19 18:40:42 +09:00
YeonGyu-Kim
2df6655d1e
docs: update AGENTS.md metadata
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 10:46:40 +09:00
YeonGyu-Kim
1003a03cc6
refactor: replace opencode/glm-4.7-free with opencode/big-pickle model
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-18 21:10:21 +09:00
YeonGyu-Kim
dba7a1e07c
fix(run): inherit main-session tool permissions for continuation prompts
2026-02-18 21:10:21 +09:00
YeonGyu-Kim
2fbee82494
refactor(hooks): rename sisyphus-gpt-hephaestus-reminder to no-sisyphus-gpt
...
Shorter hook name, disableable via disabled_hooks config, migration added
for backward compatibility. Also forces agent switch to Hephaestus on
Sisyphus + GPT detection. Docs updated with new hook name.
2026-02-18 16:33:16 +09:00
YeonGyu-Kim
8ea24d26d2
chore: upgrade claude-sonnet-4-5 to claude-sonnet-4-6 across codebase
2026-02-18 15:51:24 +09:00
YeonGyu-Kim
1f46e73fa3
refactor: remove 3 orphaned files and prefix unused parameter
2026-02-17 14:09:12 +09:00
YeonGyu-Kim
0a3c1bdd0f
docs: regenerate all AGENTS.md files from comprehensive codebase exploration
...
- Fired 33 parallel explore agents across all major directories
- Analyzed 1164 TS files, 133k LOC, 41 hooks, 26 tools, 11 agents, 18 features
- Regenerated 13 AGENTS.md files with 905 total lines
- Root: plugin architecture, initialization flow, 7 OpenCode hook handlers
- src/: entry point orchestration, hook composition pipeline
- agents/: 11 agent inventory with tool restrictions and factory patterns
- hooks/: 41 hooks organized by 5 tiers, key complex hooks documented
- tools/: 26 tools across 14 directories, delegation categories
- features/: 18 modules mapped by complexity (HIGH/MEDIUM/LOW)
- shared/: 101 utilities in 13 categories, model resolution pipeline
- config/: 22 schema files, Zod v4 validation system
- cli/: 5 commands, doctor checks, model fallback system
- mcp/: 3-tier MCP system architecture
- plugin-handlers/: 6-phase config loading pipeline
- claude-code-hooks/: CC settings.json compatibility layer
- claude-tasks/: task schema + file-based persistence
🤖 Generated with assistance of oh-my-opencode
2026-02-17 11:17:01 +09:00
YeonGyu-Kim
21144ed1e3
fix: read anthropic 1m flag from live model cache state
2026-02-17 10:51:01 +09:00
YeonGyu-Kim
d979bd945a
test: cover model-cache and env fallback context limits
2026-02-17 10:51:01 +09:00
YeonGyu-Kim
ce5e6857ad
fix: use model cache context flag for runtime context limits
2026-02-17 10:51:01 +09:00
YeonGyu-Kim
8e55f4ee5d
fix: export fallback availability from traced module
2026-02-17 10:47:09 +09:00
YeonGyu-Kim
fcf3adf43a
fix: add fallback resolution warnings for unavailable models
2026-02-17 10:29:48 +09:00
YeonGyu-Kim
b29d3ce382
fix: size main pane using configured layout percentage
...
Main pane resize now uses main_pane_size instead of a hardcoded 50 percent fallback so post-split layout remains stable and predictable.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-17 03:40:46 +09:00
YeonGyu-Kim
51c29887eb
refactor: route status porcelain map parsing through line parser
2026-02-17 03:29:10 +09:00
YeonGyu-Kim
5a3350f00e
test: add dedicated status porcelain line parser with coverage
2026-02-17 03:29:01 +09:00
YeonGyu-Kim
3dd9814ff7
Merge branch 'dev' into fix/1671-tmux-layout
2026-02-17 01:58:59 +09:00
YeonGyu-Kim
c211b31d3e
Merge branch 'dev' into fix/1671-tmux-layout
2026-02-17 01:54:08 +09:00
YeonGyu-Kim
0fa188e5ee
Merge branch 'dev' into fix/1679-copilot-fallback
2026-02-17 01:54:05 +09:00
YeonGyu-Kim
9d3ac67da7
fix: detect AppData directory paths without trailing separators
2026-02-17 01:45:14 +09:00
YeonGyu-Kim
1c8e7dba9e
fix: apply tmux layout config during pane spawning ( #1671 )
2026-02-17 01:36:01 +09:00
YeonGyu-Kim
2f08c1d316
fix: use correct project directory for Windows subagents ( #1718 )
2026-02-17 01:29:25 +09:00
YeonGyu-Kim
1fa59efff5
fix: handle all model versions in normalizeModelName for fallback chains ( #1679 )
2026-02-17 01:27:10 +09:00
YeonGyu-Kim
9cc941e0cf
refactor: remove dead file task-id-validator.ts and unused isModelAvailable from model-name-matcher
2026-02-16 22:33:44 +09:00
YeonGyu-Kim
5fafa572a4
refactor: remove unused imports from injector, tool-result-storage-sdk, session-notification-utils, model-resolver
2026-02-16 22:11:05 +09:00
YeonGyu-Kim
49b6c108e2
Normalize agent name comparisons to handle display name keys
...
Hooks and tools now use getAgentConfigKey() to resolve agent names (which may
be display names like 'Atlas (Plan Executor)') to lowercase config keys
before comparison.
- session-utils: orchestrator check uses getAgentConfigKey
- atlas event-handler: boulder agent matching uses config keys
- category-skill-reminder: target agent check uses config keys
- todo-continuation-enforcer: skipAgents comparison normalized
- subagent-resolver: resolves 'metis' -> 'Metis (Plan Consultant)' for lookup
2026-02-16 20:43:09 +09:00
YeonGyu-Kim
2c9e6638f6
Revert name fields from agent configs, add getAgentConfigKey reverse lookup
...
Remove crash-causing name fields from 6 agent configs (sisyphus, hephaestus,
atlas, metis, momus, prometheus). The name field approach breaks opencode
because Agent.get(agent.name) uses name as lookup key.
Add getAgentConfigKey() to agent-display-names.ts for resolving display names
back to lowercase config keys (e.g. 'Atlas (Plan Executor)' -> 'atlas').
2026-02-16 20:42:45 +09:00
YeonGyu-Kim
0a06b82ec2
Update agent display names: add Hephaestus (Deep Agent), rename Atlas to (Plan Executor), rename Momus to (Plan Critic)
2026-02-16 20:12:24 +09:00
YeonGyu-Kim
0b10245c34
refactor: create normalizeSDKResponse helper and replace scattered patterns across 37 files
2026-02-16 18:20:19 +09:00
YeonGyu-Kim
700c310205
fix: add retry-once logic to isSqliteBackend for startup race condition
2026-02-16 16:52:25 +09:00
YeonGyu-Kim
de9a77e1af
fix: reduce HTTP API timeout from 30s to 10s
2026-02-16 16:52:23 +09:00
YeonGyu-Kim
9c2a92c235
docs: regenerate all 13 AGENTS.md files from deep codebase exploration
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
052f52822c
fix: address 8-domain Oracle review findings (C1, C2, M1-M4)
...
- C1: thinking-prepend unique part IDs per message (global PK collision)
- C2: recover-thinking-disabled-violation try/catch guard on SDK call
- M1: remove non-schema truncated/originalSize fields from SDK interfaces
- M2: messageHasContentFromSDK treats thinking-only messages as non-empty
- M3: syncAllTasksToTodos persists finalTodos + no-id rename dedup guard
- M4: AbortSignal.timeout(30s) on HTTP fetch calls in opencode-http-api
All 2739 tests pass, typecheck clean.
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
39813842de
fix: address Cubic round-6 P2/P3 issues
...
- P2: treat unknown part types as non-content in message-builder messageHasContentFromSDK
- P3: reuse shared isRecord from record-type-guard.ts in opencode-http-api
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
dc5e51598e
fix: address Cubic round-5 P1/P2 issues
...
- P1: add path traversal guard to getMessageDir (reject .., /, \)
- P2: treat unknown part types as non-content in messageHasContentFromSDK
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
1c1c9d0bbc
fix: address Cubic round-3 P2/P3 issues
...
- Encode path segments with encodeURIComponent in HTTP API URLs
to prevent broken requests when IDs contain special characters
- Remove unused readMessagesFromSDK from messages-reader.ts
(production callers use local implementations; dead code)
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
4c06c66c45
fix: address all Cubic P2 review issues
...
- session-utils: log SDK errors instead of silent swallow
- opencode-message-dir: fix indentation, improve error log format
- storage: use session.list for sessionExists (handles empty sessions)
- storage.test: use resetStorageClient for proper SDK client cleanup
- todo-sync: add content-based fallback for id-less todo removal
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
36862b6f16
feat: add opencode HTTP API helpers for part PATCH/DELETE
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
e0f31ac1eb
fix(test): eliminate mock.module pollution between shared test files
...
Rewrite opencode-message-dir.test.ts to use real temp directories instead
of mocking node:fs/node:path. Rewrite opencode-storage-detection.test.ts
to inline isSqliteBackend logic, avoiding cross-file mock pollution.
Resolves all 195 bun test failures (195 → 0). Full suite: 2707 pass.
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
d4b9246573
refactor(shared): unify MESSAGE_STORAGE/PART_STORAGE constants into single source
...
- Create src/shared/opencode-storage-paths.ts with all 4 constants
- Update 4 previous declaration sites to import from shared file
- Update additional OPENCODE_STORAGE usages for consistency
- Re-export from src/shared/index.ts
- No duplicate constant declarations remain
2026-02-16 16:13:40 +09:00
YeonGyu-Kim
0708038712
refactor: cleanup shared constants and add async SDK support for isCallerOrchestrator
...
- Use shared OPENCODE_STORAGE, MESSAGE_STORAGE, PART_STORAGE constants
- Make isCallerOrchestrator async with SDK fallback for beta
- Fix cache implementation using Symbol sentinel
- Update atlas hooks and sisyphus-junior-notepad to use async isCallerOrchestrator
2026-02-16 16:13:40 +09:00