opencode-navigator 0.18.1 → 0.18.2
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.
- package/CHANGELOG.md +5 -0
- package/README.md +5 -3
- package/dist/tui.js +22 -12
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## [0.18.2] - 2026-10-02
|
|
6
|
+
|
|
7
|
+
- Open the host Settings dialog from the OpenCode 2.x Permissions Quick Action, where the user can change between `prompt` and `auto accept`; keep the direct auto-approve toggle on OpenCode 1.x.
|
|
8
|
+
|
|
5
9
|
## [0.18.1] - 2026-10-01
|
|
6
10
|
|
|
7
11
|
- Show calm Todo setup guidance in OpenCode 2.x when Navigator's server plugin is absent, without a request error or Retry control. Actual server failures still offer Retry.
|
|
@@ -41,6 +45,7 @@
|
|
|
41
45
|
|
|
42
46
|
Earlier release notes are available on [GitHub Releases](https://github.com/St1ggy/opencode-navigator/releases).
|
|
43
47
|
|
|
48
|
+
[0.18.2]: https://github.com/St1ggy/opencode-navigator/compare/v0.18.1...v0.18.2
|
|
44
49
|
[0.18.1]: https://github.com/St1ggy/opencode-navigator/compare/v0.18.0...v0.18.1
|
|
45
50
|
[0.18.0]: https://github.com/St1ggy/opencode-navigator/compare/v0.17.3...v0.18.0
|
|
46
51
|
[0.17.3]: https://github.com/St1ggy/opencode-navigator/compare/v0.17.2...v0.17.3
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ See the [changelog](CHANGELOG.md) for release-by-release changes.
|
|
|
15
15
|
- Collapsible Todo section with status filters, grouped tasks, progress and priority indicators; OpenCode 2 adds session-owned tasks and optional model-context instructions
|
|
16
16
|
- Active subagent list with live statuses and click-to-open navigation, including dev-team workers running in separate local processes
|
|
17
17
|
- Compact, searchable workspace skill list with user-wide favorites, recent skills, source details, and click-to-confirm slash commands
|
|
18
|
-
- Configurable host quick actions, including
|
|
18
|
+
- Configurable host quick actions, including OpenCode 1.x's auto-approve toggle and OpenCode 2.x's Permissions settings, with user-wide bookmarks and availability reasons
|
|
19
19
|
- Live LSP connection status with error-first sorting and badges that reveal server names in place
|
|
20
20
|
- Searchable MCP section with live radio-style connection controls
|
|
21
21
|
- Click any MCP row to connect or disconnect it
|
|
@@ -316,8 +316,10 @@ On the Quick Actions row, click `Actions` or press `A` to choose individual
|
|
|
316
316
|
actions and their order. Enter toggles visibility; Left/Right or Shift+Up/Down
|
|
317
317
|
reorders the selected action. Changes save in the selected Global or Current
|
|
318
318
|
worktree scope. Escape returns to the Quick Actions row in Sections. Navigator
|
|
319
|
-
keeps an explicit allowlist of argument-free host commands
|
|
320
|
-
|
|
319
|
+
keeps an explicit allowlist of argument-free host commands. On OpenCode 1.x,
|
|
320
|
+
`permission.mode` toggles auto-approve directly. On OpenCode 2.x, the same
|
|
321
|
+
Quick Action opens the host Settings dialog, where **Session → Permissions**
|
|
322
|
+
switches between `prompt` and `auto accept`. Bookmarks are user-wide and move
|
|
321
323
|
selected actions to the front in their configured order in both the sidebar and
|
|
322
324
|
Search Everything. Usage never changes the order. Visibility remains independent,
|
|
323
325
|
so any action, including a bookmarked one, can be hidden from the sidebar while it
|
package/dist/tui.js
CHANGED
|
@@ -4142,7 +4142,7 @@ _$setProp(_el$16,"flexGrow",1)
|
|
|
4142
4142
|
_$insert(_el$16,()=>icons.icon(props.preferences.selectedQuickActionVisible(action.command)?"checked":"unchecked"),_el$17)
|
|
4143
4143
|
_$insert(_el$16,()=>index() + 1,_el$18)
|
|
4144
4144
|
_$insert(_el$16,()=>icons.action(action.command),_el$19)
|
|
4145
|
-
_$insert(_el$16,()=>
|
|
4145
|
+
_$insert(_el$16,()=>quickActionLabel(props.api,action),null)
|
|
4146
4146
|
_$effect((_$p)=>_$setProp(_el$16,"fg",theme().text,_$p))
|
|
4147
4147
|
return _el$16
|
|
4148
4148
|
})(),(()=>{var _el$20=_$createElement("text")
|
|
@@ -6123,7 +6123,9 @@ return _$createComponent(ListRow,{ref:(node)=>row.ref(node),get id(){return id()
|
|
|
6123
6123
|
},get backgroundColor(){return row.backgroundColor()
|
|
6124
6124
|
},get onMouseOver(){return row.onMouseOver
|
|
6125
6125
|
},get onMouseOut(){return row.onMouseOut
|
|
6126
|
-
},onMouseUp:(event)=>
|
|
6126
|
+
},onMouseUp:(event)=>{event.stopPropagation()
|
|
6127
|
+
row.activate(event)
|
|
6128
|
+
},get leading(){return(()=>{var _el$=_$createElement("text")
|
|
6127
6129
|
_$setProp(_el$,"flexShrink",0)
|
|
6128
6130
|
_$insert(_el$,()=>icons.action(props.action.command))
|
|
6129
6131
|
_$effect((_$p)=>_$setProp(_el$,"fg",props.disabled?theme().textMuted:row.focused()?row.foregroundColor():theme().accent,_$p))
|
|
@@ -7161,6 +7163,8 @@ unsubscribe()
|
|
|
7161
7163
|
}}}}
|
|
7162
7164
|
|
|
7163
7165
|
|
|
7166
|
+
var SETTINGS_COMMAND="opencode.settings"
|
|
7167
|
+
var PERMISSIONS_ACTION="permission.mode"
|
|
7164
7168
|
function belongsTo2(renderable,ancestor){if(!renderable||!ancestor)
|
|
7165
7169
|
return false
|
|
7166
7170
|
for(let current=renderable;current; current=current.parent){if(current===ancestor)
|
|
@@ -7215,11 +7219,11 @@ setRevision((value)=>value + 1)
|
|
|
7215
7219
|
return()=>{if(!layers.delete(id))
|
|
7216
7220
|
return
|
|
7217
7221
|
setRevision((value)=>value + 1)
|
|
7218
|
-
}},dispatchCommand(name,options){const command=context.keymap.commands().find((candidate)=>candidate.id===name)
|
|
7222
|
+
}},dispatchCommand(name,options){const command=context.keymap.commands().find((candidate)=>candidate.id===(name===PERMISSIONS_ACTION?SETTINGS_COMMAND:name))
|
|
7219
7223
|
if(command){if(!enabled(command.enabled))
|
|
7220
7224
|
return{ok:false,reason:"disabled",command
|
|
7221
7225
|
}
|
|
7222
|
-
context.keymap.dispatch(
|
|
7226
|
+
context.keymap.dispatch(command.id,typeof options?.payload==="string"?options.payload:undefined)
|
|
7223
7227
|
return{ok:true,command
|
|
7224
7228
|
}}
|
|
7225
7229
|
const fallback=legacyCommand(name)
|
|
@@ -7228,12 +7232,18 @@ return{ok:false,reason:"not-found"
|
|
|
7228
7232
|
}
|
|
7229
7233
|
run(fallback)
|
|
7230
7234
|
return{ok:true,command:fallback
|
|
7231
|
-
}},getCommands(){
|
|
7235
|
+
}},getCommands(){const commands=context.keymap.commands()
|
|
7236
|
+
const result=commands.flatMap((command)=>{if(!command.id)
|
|
7232
7237
|
return []
|
|
7233
7238
|
const name=command.id
|
|
7234
7239
|
return [{...command,name,run:()=>context.keymap.dispatch(name)
|
|
7235
7240
|
}]
|
|
7236
7241
|
})
|
|
7242
|
+
const settings=commands.find((command)=>command.id===SETTINGS_COMMAND)
|
|
7243
|
+
if(settings)
|
|
7244
|
+
result.push({...settings,id:PERMISSIONS_ACTION,name:PERMISSIONS_ACTION,title:"Permissions settings",run:()=>context.keymap.dispatch(SETTINGS_COMMAND)
|
|
7245
|
+
})
|
|
7246
|
+
return result
|
|
7237
7247
|
},getCommandBindings(input){return new Map(input.commands.map((name)=>[name,[...context.keymap.shortcuts(name)]]))
|
|
7238
7248
|
},parseKeySequence(value){return value.trim()?value.trim().split(/\s+/u):[]
|
|
7239
7249
|
}}
|
|
@@ -7456,7 +7466,7 @@ api.slots.register({order:100,slots:{app(){return _$createComponent(IconProvider
|
|
|
7456
7466
|
},interaction,skills,subagents,mcp
|
|
7457
7467
|
}),_$createComponent(FirstRunWizardPersistence,{api,preferences
|
|
7458
7468
|
}),_$createComponent(StartupSessionBinding,{api,controller:startup
|
|
7459
|
-
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.18.
|
|
7469
|
+
}),_$createComponent(UpgradeNotesBinding,{api,preferences,version:"0.18.2"
|
|
7460
7470
|
}),_$createComponent(McpPersistence,{api,controller:mcp
|
|
7461
7471
|
})]
|
|
7462
7472
|
}})
|
|
@@ -7486,12 +7496,12 @@ throw result.error
|
|
|
7486
7496
|
}
|
|
7487
7497
|
return result.data?.type==="text"?result.data.content:undefined
|
|
7488
7498
|
})
|
|
7489
|
-
const versionStatus=createVersionStatus(api,"0.18.
|
|
7490
|
-
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.18.
|
|
7499
|
+
const versionStatus=createVersionStatus(api,"0.18.2")
|
|
7500
|
+
const versionUpdates=createVersionUpdateActions(api,versionStatus,createOpenCodeV1VersionUpdater(api,meta),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.18.2"))
|
|
7491
7501
|
api.slots.register({order:90,slots:{sidebar_footer(_context,props){return _$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7492
7502
|
},get multilineCorners(){return preferences.cornerFont
|
|
7493
7503
|
},get children(){return _$createComponent(VersionFooter,{api,get sessionID(){return props.session_id
|
|
7494
|
-
},navigatorVersion:"0.18.
|
|
7504
|
+
},navigatorVersion:"0.18.2",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7495
7505
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7496
7506
|
}})
|
|
7497
7507
|
}})
|
|
@@ -7505,15 +7515,15 @@ return
|
|
|
7505
7515
|
return new TextDecoder().decode(await context.client.file.read({location:context.location,path:".opencode/navigator.json"
|
|
7506
7516
|
}))
|
|
7507
7517
|
},todo)
|
|
7508
|
-
const versionStatus=createVersionStatus(adapter.api,"0.18.
|
|
7509
|
-
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.18.
|
|
7518
|
+
const versionStatus=createVersionStatus(adapter.api,"0.18.2")
|
|
7519
|
+
const versionUpdates=createVersionUpdateActions(adapter.api,versionStatus,createOpenCodeV2VersionUpdater(context),()=>preferences.rememberNavigatorVersionBeforeUpdate("0.18.2"))
|
|
7510
7520
|
const disposeFooter=context.ui.slot({append:"sidebar.footer",render:()=>_$createComponent(IconProvider,{get style(){return preferences.lspIconStyle
|
|
7511
7521
|
},get multilineCorners(){return preferences.cornerFont
|
|
7512
7522
|
},get children(){var _el$=_$createElement("box")
|
|
7513
7523
|
_$setProp(_el$,"flexDirection","row")
|
|
7514
7524
|
_$setProp(_el$,"justifyContent","space-between")
|
|
7515
7525
|
_$insert(_el$,_$createComponent(VersionSummary,{get api(){return adapter.api
|
|
7516
|
-
},navigatorVersion:"0.18.
|
|
7526
|
+
},navigatorVersion:"0.18.2",status:versionStatus,get onOpenCodeUpdate(){return versionUpdates.openCode
|
|
7517
7527
|
},get onNavigatorUpdate(){return versionUpdates.navigator
|
|
7518
7528
|
}}),null)
|
|
7519
7529
|
_$insert(_el$,_$createComponent(SettingsFooterButton,{get api(){return adapter.api
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "opencode-navigator",
|
|
4
|
-
"version": "0.18.
|
|
4
|
+
"version": "0.18.2",
|
|
5
5
|
"description": "Search, navigate, and manage OpenCode sessions from the TUI",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"packageManager": "bun@1.4.2",
|