@aryacode/dsh-aryacode-polish 0.10.0 → 0.11.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 +19 -0
- package/client/workspace.js +10 -2
- package/docs/better-workspace.md +23 -0
- package/lib/client.js +11 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.11.2] - 2026-10-28
|
|
4
|
+
|
|
5
|
+
### Verified
|
|
6
|
+
|
|
7
|
+
- Drag reorder now has live proof, not just unit tests: with two workspaces in the
|
|
8
|
+
Dev AryaCode desktop, dropping the second workspace on the first reordered them
|
|
9
|
+
(`workspaces.insertBefore`), and the new order survived a full app restart.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- A session is never promised a move the Host cannot make. The remote workspace
|
|
14
|
+
namespace exposes `create`, `rename`, `delete`, `insertBefore`,
|
|
15
|
+
`insertSessionBefore`, `archiveSession`, `unarchiveSession`, `pinSession` and
|
|
16
|
+
`unpinSession` — and no `attachSession` or `detachSession` — while a workspace's own
|
|
17
|
+
`insertSessionBefore` only reorders the sessions already inside it (it rejects a
|
|
18
|
+
session it does not hold). So dropping a session on another workspace is refused
|
|
19
|
+
with a plain explanation instead of firing a call that fails, and the session menu
|
|
20
|
+
no longer offers "Move to <workspace>".
|
|
21
|
+
|
|
3
22
|
## [0.10.0] - 2026-10-28
|
|
4
23
|
|
|
5
24
|
### Added
|
package/client/workspace.js
CHANGED
|
@@ -533,7 +533,14 @@ export function BetterWorkspace(props) {
|
|
|
533
533
|
setDrag(null)
|
|
534
534
|
setDropping(null)
|
|
535
535
|
if (!moving || moving.kind !== 'session' || moving.id === targetId) return
|
|
536
|
-
if (moving.workspaceId !== workspaceId) {
|
|
536
|
+
if (moving.workspaceId !== workspaceId) {
|
|
537
|
+
// A session cannot change workspace from a plugin: the Host's remote
|
|
538
|
+
// namespace exposes create/rename/delete/insertBefore/insertSessionBefore
|
|
539
|
+
// and no attachSession or detachSession, and a workspace's own
|
|
540
|
+
// insertSessionBefore only reorders the sessions already in it.
|
|
541
|
+
setNotice('A session stays in its workspace; drag it within that workspace to reorder.')
|
|
542
|
+
return
|
|
543
|
+
}
|
|
537
544
|
void reorderSession(workspaceId, moving.id, targetId)
|
|
538
545
|
}
|
|
539
546
|
|
|
@@ -605,7 +612,8 @@ export function BetterWorkspace(props) {
|
|
|
605
612
|
runtime,
|
|
606
613
|
workspacesSnapshot: workspaceState,
|
|
607
614
|
session: { sessionId: menu.row.id, displayTitle: menu.row.displayTitle, session: menu.row },
|
|
608
|
-
})))
|
|
615
|
+
}))),
|
|
616
|
+
null)
|
|
609
617
|
: null
|
|
610
618
|
|
|
611
619
|
const children = []
|
package/docs/better-workspace.md
CHANGED
|
@@ -70,3 +70,26 @@ are M2/M3; the seat is already the right place for them.
|
|
|
70
70
|
|
|
71
71
|
Still owed: "/"-in-title grouping, per-row appearance, workspace presets, and the same
|
|
72
72
|
tree in the Hero picker.
|
|
73
|
+
|
|
74
|
+
## Why a session cannot change workspace
|
|
75
|
+
|
|
76
|
+
Drag reorder works inside a workspace and between workspaces, but a *session* cannot
|
|
77
|
+
be dragged into a different workspace, and that is the Host's shape rather than an
|
|
78
|
+
omission here:
|
|
79
|
+
|
|
80
|
+
- `packages/api/workspace-controller/src/index.ts` exposes these remotes:
|
|
81
|
+
`create`, `initializeDefault`, `rename`, `delete`, `insertBefore`,
|
|
82
|
+
`insertSessionBefore`, `archiveSession`, `unarchiveSession`, `pinSession`,
|
|
83
|
+
`unpinSession` — and nothing that attaches or detaches a session.
|
|
84
|
+
- `packages/api/workspace-controller/src/commands.ts:132` resolves the target workspace
|
|
85
|
+
and calls its own `insertSessionBefore(sessionId, beforeSessionId)`
|
|
86
|
+
(`packages/workspace/workspace/src/entity.ts:152`), which reorders that workspace's
|
|
87
|
+
`sessionIds`; `packages/workspace/workspace/tests/workspace.spec.ts:715` pins that a
|
|
88
|
+
session the workspace does not hold is rejected.
|
|
89
|
+
- The entity does have `attachSession`/`detachSession`
|
|
90
|
+
(`packages/workspace/workspace/src/types.ts:134` region), but no remote surfaces them.
|
|
91
|
+
|
|
92
|
+
So the tree refuses with "A session stays in its workspace; drag it within that
|
|
93
|
+
workspace to reorder." rather than attempting a call that throws. If the Host ever
|
|
94
|
+
exposes attach/detach, the gesture becomes a one-line change here — the drag payload
|
|
95
|
+
already carries `{ kind: 'session', id, workspaceId }`.
|
package/lib/client.js
CHANGED
|
@@ -53,7 +53,7 @@ window.__ModuleLoader__.load({
|
|
|
53
53
|
]
|
|
54
54
|
const ROW_ID = "polish"
|
|
55
55
|
const ROW_KEY = "@aryacode/dsh-aryacode-polish" + '#' + ROW_ID
|
|
56
|
-
const CLIENT_VERSION = "0.
|
|
56
|
+
const CLIENT_VERSION = "0.11.2"
|
|
57
57
|
|
|
58
58
|
/* html2canvas 1.4.1 — MIT, vendored from vendor/html2canvas.min.js.
|
|
59
59
|
* A UMD build, so it assigns itself to globalThis; face.js reads it lazily. */
|
|
@@ -734,7 +734,14 @@ window.__ModuleLoader__.load({
|
|
|
734
734
|
setDrag(null)
|
|
735
735
|
setDropping(null)
|
|
736
736
|
if (!moving || moving.kind !== 'session' || moving.id === targetId) return
|
|
737
|
-
if (moving.workspaceId !== workspaceId) {
|
|
737
|
+
if (moving.workspaceId !== workspaceId) {
|
|
738
|
+
// A session cannot change workspace from a plugin: the Host's remote
|
|
739
|
+
// namespace exposes create/rename/delete/insertBefore/insertSessionBefore
|
|
740
|
+
// and no attachSession or detachSession, and a workspace's own
|
|
741
|
+
// insertSessionBefore only reorders the sessions already in it.
|
|
742
|
+
setNotice('A session stays in its workspace; drag it within that workspace to reorder.')
|
|
743
|
+
return
|
|
744
|
+
}
|
|
738
745
|
void reorderSession(workspaceId, moving.id, targetId)
|
|
739
746
|
}
|
|
740
747
|
|
|
@@ -806,7 +813,8 @@ window.__ModuleLoader__.load({
|
|
|
806
813
|
runtime,
|
|
807
814
|
workspacesSnapshot: workspaceState,
|
|
808
815
|
session: { sessionId: menu.row.id, displayTitle: menu.row.displayTitle, session: menu.row },
|
|
809
|
-
})))
|
|
816
|
+
}))),
|
|
817
|
+
null)
|
|
810
818
|
: null
|
|
811
819
|
|
|
812
820
|
const children = []
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aryacode/dsh-aryacode-polish",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "AryaCode Polish: one install for the small things that make AryaCode feel finished. One Plugins row, one switch per quality-of-life feature.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh",
|