Hashline Edit — hash-verified file editing, now in experimental.
Agents can now edit files using line-level hash anchors (5:a3|const x = 1). Every edit is verified against a hash of the current line content before applying — if the file changed since it was last read, the edit fails instead of silently corrupting your code.
This ships as experimental.hashline_edit alongside our existing task management system (Claude Code's tasklist), both marked experimental for the same reason: OpenCode's TUI/GUI can't yet render their output natively. Hashline diffs and task progress need proper visual treatment. We're actively working on the rendering layer to promote both out of experimental.
75 commits. 157 files changed. +6,904/-2,196 lines.
Highlights
Hashline Edit (experimental)
- 4 edit operations:
set_line,replace_lines,insert_after,replace— all hash-verified - Read hook auto-transforms output to
LINE:HASH|contentformat when enabled - Bottom-up application preserves line number references across multi-edit batches
- Gated behind
experimental.hashline_editin config
Playwright CLI
- New browser automation provider: lightweight CLI alternative to the MCP-based playwright skill
- Full command set: navigation, forms, tabs, storage, network mocking, screenshots, tracing
- Thanks to @jonasherr for the contribution
Tmux Layout Overhaul
- Pane layout now respects your actual
main_pane_sizeconfig instead of a hardcoded 50% ratio - Ghost sessions (never became ready) are cleaned up instead of tracked forever
- Pane eviction uses replace instead of close+spawn — less visual churn
Model & Fallback Fixes
- Context window 1M flag reads from live model cache, not just env vars at startup
google-vertex-anthropicrecognized as Claude provider everywhere- Fallback model matching handles all Claude version formats (
claude-opus-4-6, etc.) - Warning logs when no fallback model resolves
Agent Prompt Improvements
- All markdown tables replaced with bullet lists (fewer tokens, better model comprehension)
- Oracle protection hardened: agents must collect Oracle results before final answer
- Hephaestus rewritten with progress updates, skill loading examples, completion guarantee
CLI Run Mode
- Handles both
sessionIDandsessionIdevent formats - Tool execution shown inline with input previews
- Toast error detection for auth failures
- Startup toasts suppressed in headless mode
Community (5 contributors)
@jsl9208 @potb @dankochetov @jonasherr @jkoelker
- e3342dc refactor(prompts): replace markdown tables with bullet lists, harden Oracle protection
- 764abb2 docs: fix ultrabrain model reference in category-skill-guide (GPT-5.2→GPT-5.3 Codex)
- f8e58ef docs: fix agent model references in all READMEs (Opus 4.5→4.6, GPT 5.2 Codex→5.3, Librarian→GLM-4.7, Explore→Grok Code Fast 1)
- fba0686 docs: fix model references across guide docs (Opus 4.5→4.6, GPT-5.2 Codex→5.3, Atlas model, add deep category, fix dot notation)
- c51994c docs: fix agent fallback chains, provider chains, and category tables to match model-requirements.ts
- 3facf9f docs: fix structural counts in AGENTS.md (hook handlers 7→8, tool dirs 14→15, core hooks 33→32, session hooks 20→19, config merge order)
- aac79f0 docs: regenerate all AGENTS.md files from comprehensive codebase exploration
- 5a8e424 Merge pull request #1910 from code-yeongyu/fix/1753-context-window-hardcoded
- d786691 fix: read anthropic 1m flag from live model cache state
- b444899 fix: use model cache context flag for runtime context limits
- b1e7bb4 Merge pull request #1912 from code-yeongyu/fix/1694-fallback-wiring
- 8e115c7 fix: export fallback availability from traced module
- fe5d341 Merge pull request #1909 from code-yeongyu/fix/1694-fallback-model-ids
- ca06ce1 fix: add fallback resolution warnings for unavailable models
- 72fa2c7 fix(tmux): stop layout override after spawn, use configured main pane size
- b3c5f4c fix(tmux): use actual pane dimensions and configured min width for grid calculation
- 219c1f8 update: always wait for Oracle results instead of blanket background_cancel(all=true)
- 6208c07 @xinpengdr has signed the CLA in #1906
- 1b7a1e3 Merge pull request #1905 from code-yeongyu/fix/tmux-split-stability
- 84a8392 fix: stop tracking sessions that never become ready
- 17da227 fix: size main pane using configured layout percentage
- da3f24b fix: align split targeting with configured pane width
- b027214 refactor: route status porcelain map parsing through line parser
- 1566cfc update: Hephaestus completion guarantee, Sisyphus-Junior Hephaestus-style rewrite, snake_case tools
- 2b5887a fix: prevent overlapping poll cycles in managers
- 8c88da5 update: soften Hephaestus brevity bias — replace 'brief/briefly' with 'clear' throughout
- 199992e update: Hephaestus prompt — restore intent gate, strengthen parallelism and reporting
- 6b54652 refactor: diet Hephaestus prompt — remove redundancy, add progress updates and skill examples
- c44509b fix: skip startup toasts in CLI run mode for auto-update-checker
- 1799469 fix: add directory parameter and improve CLI run session handling
- a31087e fix: add propertyNames validation to object schemas in JSON schema
- 5c13a63 fix: invoke claude-code-hooks PreCompact in session compacting handler
- d9f21da fix: prefer a runnable opencode binary for cli run
- 7d2c798 Merge pull request #1893 from code-yeongyu/fix/1716-disabled-agents-enforcement
- ea589e6 Merge remote-tracking branch 'origin/dev' into fix/1716-disabled-agents-enforcement
- e299c09 fix: include provider-models cache for Hephaestus availability
- 285d8d5 fix: skip compaction messages in parent-session context lookup
- e1e4491 Merge pull request #1898 from code-yeongyu/fix/1671-tmux-layout
- 324d2c1 Merge branch 'dev' into fix/1671-tmux-layout
- f3de0f4 Merge pull request #1899 from code-yeongyu/fix/1700-vertex-anthropic
- 5839594 Merge pull request #1897 from code-yeongyu/fix/1679-copilot-fallback
- ada0a23 Merge pull request #1894 from code-yeongyu/fix/1681-oracle-json-parse
- b7497d0 Merge branch 'dev' into fix/1700-vertex-anthropic
- 7bb0370 Merge branch 'dev' into fix/1671-tmux-layout
- ccbeea9 Merge branch 'dev' into fix/1679-copilot-fallback
- 9922a94 Merge branch 'dev' into fix/1681-oracle-json-parse
- e78c54f Merge pull request #1896 from code-yeongyu/fix/1283-review-code-silent-fail
- 74be163 Merge pull request #1895 from code-yeongyu/fix/1718-windows-subagent-dir
- 2478933 fix: detect AppData directory paths without trailing separators
- 0e0bfc1 Merge pull request #1849 from jkoelker/preserve-default-agent
- 90ede44 fix(config): preserve configured default_agent
- 3a2f886 fix: apply tmux layout config during pane spawning (#1671)
- 2fa8289 Merge pull request #1884 from code-yeongyu/feat/hashline-edit
- 5aa9ecd Merge pull request #1870 from dankochetov/fix/background-notification-hook-gate
- c8d03aa Merge pull request #1708 from jsl9208/fix/ast-grep-replace-silent-noop
- 693f73b Merge pull request #1729 from potb/fix/1716-disabled-agents-call-omo
- 1b05c3f Merge pull request #1819 from jonasherr/feat/add-playwright-cli-provider
- 5ae45c8 fix: use correct project directory for Windows subagents (#1718)
- 931bf6c fix: resolve JSON parse error in Oracle after promptAsync refactor (#1681)
- d672eb1 fix: recognize google-vertex-anthropic as Claude provider (#1700)
- dab9953 fix: handle all model versions in normalizeModelName for fallback chains (#1679)
- d7a53e8 fix: report errors instead of silent catch in subagent-resolver (#1283)
- 56353ae fix: enforce disabled_agents config in call_omo_agent (#1716)
- af7b1ee refactor(hashline): override native edit tool instead of separate tool + disabler hook
- 9eb786d test(session-manager): fix storage tests by mocking message-dir dependency
- 25f2003 fix(ci): isolate session-manager tests to prevent flakiness
- 359c6b6 fix(hashline): address Cubic review comments
- 51dde4d feat(hashline): port hashline edit tool from oh-my-pi
- 149de9d feat(config): add experimental.hashline_edit flag and provider state module
- 9b187e2 Merge remote-tracking branch 'origin/dev' into fix/background-notification-hook-gate
- 27f8fed feat(browser-automation): add playwright-cli as browser automation provider
- 0f287eb fix(plugin): honor disabled background-notification hook
- 5298ff2 fix(background-agent): allow disabling parent session reminders
- cd0949c fix(call-omo-agent): enforce disabled_agents config (#1716)
- 0f5b8e9 test(call-omo-agent): add disabled_agents validation tests
- fec12b6 fix(ast-grep): fix ast_grep_replace silent write failure
Thank you to 5 community contributors:
- @jsl9208:
- fix(ast-grep): fix ast_grep_replace silent write failure
- @potb:
- test(call-omo-agent): add disabled_agents validation tests
- fix(call-omo-agent): enforce disabled_agents config (#1716)
- @dankochetov:
- fix(background-agent): allow disabling parent session reminders
- fix(plugin): honor disabled background-notification hook
- Merge remote-tracking branch 'origin/dev' into fix/background-notification-hook-gate
- @jonasherr:
- feat(browser-automation): add playwright-cli as browser automation provider
- @jkoelker:
- fix(config): preserve configured default_agent