LukeGus
2ba11652eb
fix: sso only accounts cannot sign in with a passkey or other local method
2026-10-09 11:14:56 -05:00
LukeGus
4c68d35c21
fix: linked desktops keep a plugin when its update from the server fails
2026-10-09 10:07:10 -05:00
LukeGus
0ce378ec55
feat: plugin text columns are longtext on mysql so they are not capped at 64KB
2026-10-09 09:39:08 -05:00
LukeGus
0b41672a3c
chore: stop pushing the release- docker tag
2026-10-09 08:06:19 -05:00
LukeGus
f803bfc140
fix: bundled plugins path for source runs and backend cleanup
2026-10-09 07:37:46 -05:00
LukeGus
b0a0ee3e00
fix: plugin sdk 1.0.5 with optional ui peers, safer timeouts and validate checks
2026-10-09 07:37:42 -05:00
LukeGus
af09aa1028
fix: reject expired sessions on sockets, api key desktop links and 192.0.0.0/24
2026-10-09 07:37:38 -05:00
LukeGus
cfab6f764c
feat: plugin docs and env manifest fields, in-app docs links, SDK 1.0.3
2026-10-08 00:34:50 -05:00
LukeGus
c3624cdf62
fix: refuse sessionless tokens and keep the secrets file owner only
2026-10-07 21:20:03 -05:00
LukeGus
740d2adaf3
fix: keep global settings out of non-admin data exports (GHSA-v3vp-ffww-q7pw)
2026-10-07 21:18:08 -05:00
LukeGus
8a45d952fd
fix: trust devices by a server-issued token, not a client header (GHSA-6gr3-r7jx-wfmh)
2026-10-07 21:17:07 -05:00
LukeGus
ad3a18224f
fix: lock the desktop backend to the app's own origin (GHSA-frx8-qqgg-7j7g)
2026-10-07 21:14:34 -05:00
LukeGus
ea678c5602
fix: import sshpk as a default so the backend starts under ESM
2026-10-07 19:16:15 -05:00
LukeGus
fbf7598399
fix: refresh cached plugin translations when only a translation changes (Support#1411)
2026-10-07 16:59:50 -05:00
LukeGus
18a594a92d
fix: start the macOS local terminal when the shell or spawn helper is broken (Support#1418)
2026-10-07 16:56:52 -05:00
LukeGus
679b61da9b
fix: add missing sync ids to old snippet tables so snippets sync again (Support#1419)
2026-10-07 16:55:38 -05:00
LukeGus
db8305e393
fix: keep client tunnels open when one of their connections fails (Support#1417)
2026-10-07 16:50:07 -05:00
LukeGus
1466c7bcab
fix: ask for a push/TOTP menu choice as text instead of a push confirm
2026-10-07 16:40:18 -05:00
ZacharyZcR
42c5682243
fix(hosts): display protocol credential usernames for non-SSH hosts ( #1572 )
2026-10-07 16:37:58 -05:00
ZacharyZcR
9c31dd41c7
fix(ssh): normalize PKCS8 private keys before connecting ( #1570 )
2026-10-07 16:37:50 -05:00
ZacharyZcR
f412a28bb8
fix(sync): resolve shared hosts for connect-only recipients ( #1568 )
2026-10-07 16:37:41 -05:00
LukeGus
f73c4b5ad6
feat: beta channels for core and plugins with one stable/beta release workflow
2026-10-07 16:25:58 -05:00
LukeGus
27819c477c
fix: retry failed or blocked plugins on restart instead of leaving them disabled
2026-10-06 23:08:10 -05:00
LukeGus
b6bb3ffc73
feat: show plugin features from the manifest on the plugin page
2026-10-06 22:38:13 -05:00
LukeGus
9bc2be721b
feat: changelog.md release notes, v tags, plugin release notes and videos
2026-10-06 18:13:39 -05:00
LukeGus
b9dd3488a5
feat: full screen onboarding with a plugin picker and per step versions
2026-10-06 17:44:25 -05:00
LukeGus
ec80a8ef8d
feat: dev:all runner for web, electron and docker with plugin hot reload, termix-plugin dev
2026-10-06 15:55:00 -05:00
LukeGus
08db1fcdde
feat: consent check, developer mode file installs, install counts and issue links for plugins
2026-10-06 14:30:56 -05:00
LukeGus
58c3434e58
feat: shared list kit, settings search, rail order and ui consistency fixes
2026-10-06 13:02:05 -05:00
LukeGus
3ed5775ed5
feat: implement plugin management UI
2026-10-06 10:35:56 -05:00
LukeGus
853615af09
fix: stop full database rewrites on every plugin db call
2026-10-05 20:10:09 -05:00
LukeGus
5e54d95e71
fix: harden plugin sockets, public routes, prebuilt binaries and login fallback
2026-10-05 19:50:19 -05:00
LukeGus
e608505b39
chore: rename the plugin sdk to @termix-ssh/plugin-sdk
2026-10-05 18:23:03 -05:00
LukeGus
61f46d2517
feat: drop the 2.8 columns, moves and aliases kept for a downgrade
2026-10-05 10:21:11 -05:00
LukeGus
e02b5fe6e4
chore: move plugins to their own repos and drop the plugins folder
2026-10-04 22:40:06 -05:00
LukeGus
6b91c3a460
Merge branch 'dev-2.9.1' into dev-26.10.0
...
# Conflicts:
# package-lock.json
# package.json
# plugins/ai/locales/translated/af_ZA.json
# plugins/ai/locales/translated/ar_SA.json
# plugins/ai/locales/translated/bg_BG.json
# plugins/ai/locales/translated/bn_BD.json
# plugins/ai/locales/translated/ca_ES.json
# plugins/ai/locales/translated/cs_CZ.json
# plugins/ai/locales/translated/da_DK.json
# plugins/ai/locales/translated/de_DE.json
# plugins/ai/locales/translated/el_GR.json
# plugins/ai/locales/translated/es_ES.json
# plugins/ai/locales/translated/fi_FI.json
# plugins/ai/locales/translated/fr_FR.json
# plugins/ai/locales/translated/he_IL.json
# plugins/ai/locales/translated/hi_IN.json
# plugins/ai/locales/translated/hu_HU.json
# plugins/ai/locales/translated/id_ID.json
# plugins/ai/locales/translated/it_IT.json
# plugins/ai/locales/translated/ja_JP.json
# plugins/ai/locales/translated/ko_KR.json
# plugins/ai/locales/translated/nl_NL.json
# plugins/ai/locales/translated/no_NO.json
# plugins/ai/locales/translated/pl_PL.json
# plugins/ai/locales/translated/pt_BR.json
# plugins/ai/locales/translated/pt_PT.json
# plugins/ai/locales/translated/ro_RO.json
# plugins/ai/locales/translated/ru_RU.json
# plugins/ai/locales/translated/sr_SP.json
# plugins/ai/locales/translated/sv_SE.json
# plugins/ai/locales/translated/th_TH.json
# plugins/ai/locales/translated/tr_TR.json
# plugins/ai/locales/translated/uk_UA.json
# plugins/ai/locales/translated/vi_VN.json
# plugins/ai/locales/translated/zh_TW.json
2026-10-04 17:34:09 -05:00
LukeGus
0a436ab3d8
fix: simplify host status to online/offline and keep it live without a refresh
2026-10-04 14:18:50 -05:00
LukeGus
2646b649d7
fix: remote desktop logins missing from shared hosts on desktop
2026-10-04 13:55:55 -05:00
LukeGus
08e1eea2f3
fix: tunnels and host settings missing from shared hosts on desktop
2026-10-04 13:54:09 -05:00
ZacharyZcR
abbfca2e94
fix(audit): store plugin entries with no acting user as a null user_id ( #1556 )
...
Plugin audit entries written outside a request used the literal "system"
as user_id. That column references users.id, so the insert was refused
(Postgres logs it as an FK violation) and the entry was silently dropped.
Write null instead and keep "system" / plugin:<id> in username.
2026-10-04 18:40:13 +08:00
LukeGus
e489d804f9
Merge branch 'dev-2.9.1' into dev-26.10.0
2026-10-03 16:36:59 -05:00
LukeGus
b3e220acf1
fix: host key silently accepted when the host is missing from the database ( #1397 )
2026-10-03 16:35:09 -05:00
ZacharyZcR
bf817d8bd1
feat(ai): add remote coding agent sessions for SSH hosts ( #1545 )
...
* feat(ai): add host coding agent sessions with configured providers
* Wait for agent initialization and shutdown before resuming sessions
* Keep Pi transcripts outside its configuration migration directory
* Cover Pi session directory separation
* Update core permission catalog expectations for remote agents
* Install remote agent runtimes from verified official sources
* Wait for the identity panel credentials request in its test
* Add scoped SSH forwarding setup for remote agents
* Verify forwarding setup through a fresh SSH connection
* Bound the SSH forwarding verification timeout
* Return the forwarding verification callback result
* fix(ai): support agent send and interrupt keyboard shortcuts
* feat(ai): add agent queues attachments worktrees and session recovery
* fix(ai): handle deleted workspace paths and duplicate status events
* fix(ai): accept file references in root workspaces
* fix(ai): refresh paused queues after agent errors
* fix(ai): store agent sessions in plugin tables and lock down OpenCode
Agent sessions lived in a single ctx.kv value holding up to 2000 events,
which passed the 256 KB kv limit within minutes of a normal run. Every
save after that failed, so history, nativeId, queue and archive changes
were lost and every event wrote a kv audit row.
Sessions, events and queued prompts now have their own tables. A running
agent appends events in batches at most once a second with a lazy save;
session and queue changes save immediately. Prompts, drafts and stored
event text are capped in UTF-8 bytes to fit MySQL TEXT. kv:own is no
longer requested.
The OpenCode server now requires a per-session password, so other local
accounts on the host cannot drive the agent through its loopback port.
* test(upgrade): include agent session tables in the reviewed upgrade SQL
2026-10-03 16:01:47 -05:00
LukeGus
77bcbdb3d6
chore: merge dev-2.9.1 into dev-26.10.0
2026-10-03 16:01:42 -05:00
LukeGus
7156ac1af3
fix: add openapi docs and error handling to host tag routes
2026-10-03 15:45:41 -05:00
LukeGus
b03000e396
fix: op:// secret references rejected as ssh keys on credentials ( #1394 )
2026-10-03 15:41:44 -05:00
LukeGus
86840f7642
fix: user data export freezing the server ( #1393 )
2026-10-03 15:38:31 -05:00
LukeGus
79bd10a1b0
fix: high cpu from status probes and full database saves on every sample ( #1300 )
2026-10-03 15:37:11 -05:00
LukeGus
11a22d30eb
fix: host imports running a defaults pass and metrics restart per host ( #1384 )
2026-10-03 15:37:07 -05:00
LukeGus
6f442c5863
fix: plugins losing the saved ssh login when copying a host ( #1391 )
2026-10-03 15:31:01 -05:00