Commit Graph
170 Commits
Author SHA1 Message Date
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