shadok-ai 0.15.30 → 0.15.32
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/README.md +5 -4
- package/package.json +1 -1
- package/public/index.html +21 -2
package/README.md
CHANGED
|
@@ -79,11 +79,12 @@ Enter to skip; you can add it later from the web UI).
|
|
|
79
79
|
- **Groups column** — on a desktop the groups get a column of their own, left
|
|
80
80
|
of the agents: pick a group and the agents column shows only its agents
|
|
81
81
|
(*Ungrouped* holds the rest, the home agent included unless you file it). Each
|
|
82
|
-
group has an icon — drawn at random, click it to pick another or type
|
|
83
|
-
emoji — and a **+** that creates the new agent straight into that group.
|
|
82
|
+
group has an icon — drawn at random, double-click it to pick another or type
|
|
83
|
+
any emoji — and a **+** that creates the new agent straight into that group.
|
|
84
|
+
A single click on a group (its icon or its row) selects it; this matters once
|
|
85
|
+
**«** folds the column to its icons, where the icon is the whole row.
|
|
84
86
|
Dragging an agent onto a group still files it there, and dragging groups
|
|
85
|
-
reorders them. Double-click a name to rename it
|
|
86
|
-
its icons. A dot on a group you are not looking at says one of its agents
|
|
87
|
+
reorders them. Double-click a name to rename it. A dot on a group you are not looking at says one of its agents
|
|
87
88
|
is waiting for you, has an unread answer, or is working. On a phone nothing
|
|
88
89
|
changes: the agents sheet still lists every group.
|
|
89
90
|
- **Worktree isolation** — spawned agents get their own git worktree and branch
|
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -4184,6 +4184,15 @@
|
|
|
4184
4184
|
const moodOf = (t) =>
|
|
4185
4185
|
["needs-answer", "unread", "working"].find((m) => t.btnEl.classList.contains(m)) || null;
|
|
4186
4186
|
|
|
4187
|
+
// A single click on a group's icon SELECTS the group (when the rail is
|
|
4188
|
+
// collapsed to icons the icon is almost the whole row, so this is the primary
|
|
4189
|
+
// action); a double-click opens the icon picker. The stamp has to live out
|
|
4190
|
+
// here, not on the element: selecting a non-active group rebuilds the rail
|
|
4191
|
+
// (renderRail keys on the active view) and replaces the very icon between the
|
|
4192
|
+
// two clicks, so a native `dblclick` never fires and an element-local timer
|
|
4193
|
+
// would be thrown away with it.
|
|
4194
|
+
let lastIconClick = { view: null, t: 0 };
|
|
4195
|
+
|
|
4187
4196
|
function railItem({ view, icon, name, group }) {
|
|
4188
4197
|
const members = tabsInView(view);
|
|
4189
4198
|
const item = document.createElement("div");
|
|
@@ -4199,7 +4208,7 @@
|
|
|
4199
4208
|
ic.type = "button";
|
|
4200
4209
|
ic.className = "rail-icon";
|
|
4201
4210
|
ic.textContent = icon;
|
|
4202
|
-
if (group) ic.title = "
|
|
4211
|
+
if (group) ic.title = "Double-click to change the icon";
|
|
4203
4212
|
const nm = document.createElement("span");
|
|
4204
4213
|
nm.className = "rail-name";
|
|
4205
4214
|
nm.textContent = name;
|
|
@@ -4228,8 +4237,18 @@
|
|
|
4228
4237
|
applyView();
|
|
4229
4238
|
});
|
|
4230
4239
|
ic.addEventListener("click", (e) => {
|
|
4240
|
+
// stopPropagation so the item's own click doesn't double-fire setView,
|
|
4241
|
+
// and so the document-level close-on-click doesn't shut the picker we
|
|
4242
|
+
// may be about to open with this very click.
|
|
4231
4243
|
e.stopPropagation();
|
|
4232
|
-
|
|
4244
|
+
const now = Date.now();
|
|
4245
|
+
if (lastIconClick.view === view && now - lastIconClick.t < 350) {
|
|
4246
|
+
lastIconClick = { view: null, t: 0 };
|
|
4247
|
+
openIconPicker(group, ic);
|
|
4248
|
+
} else {
|
|
4249
|
+
lastIconClick = { view, t: now };
|
|
4250
|
+
setView(view);
|
|
4251
|
+
}
|
|
4233
4252
|
});
|
|
4234
4253
|
nm.addEventListener("dblclick", (e) => {
|
|
4235
4254
|
e.stopPropagation();
|