impel-cli 0.20.30 → 0.20.31
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/RELEASE_NOTES.md +10 -0
- package/package.json +1 -1
- package/src/apps.js +1 -1
- package/src/desktopTasks.js +21 -3
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Release notes
|
|
2
2
|
|
|
3
|
+
## 0.20.31 — Complete embedded Tasks controls
|
|
4
|
+
|
|
5
|
+
- Allows the guarded `delete_task` operation through the tenant desktop bridge
|
|
6
|
+
so the MCP App can complete the full task CRUD lifecycle.
|
|
7
|
+
- Keeps the embedded board below the macOS title-bar drag region so Board,
|
|
8
|
+
List, scope, refresh, create, and external-link controls receive pointer
|
|
9
|
+
input normally.
|
|
10
|
+
- Rebuilds managed Claude and ChatGPT bundles onto the corrected Tasks host
|
|
11
|
+
contract while preserving tenant profiles and app state.
|
|
12
|
+
|
|
3
13
|
## 0.20.30 — Stable Claude and Codex upgrades
|
|
4
14
|
|
|
5
15
|
- Updates the reviewed native CLI pins to Claude Code 2.1.220 and Codex
|
package/package.json
CHANGED
package/src/apps.js
CHANGED
|
@@ -299,7 +299,7 @@ export const CURRENT_CONFIG_VERSION = 32;
|
|
|
299
299
|
// — which is what made every `impel update` re-trigger macOS permission
|
|
300
300
|
// prompts. Bump this ONLY when a code change alters the bytes of a built
|
|
301
301
|
// bundle; leave it alone for changes that don't touch bundle contents.
|
|
302
|
-
export const BUNDLE_BUILD_FINGERPRINT = "bundle-2026-08-08.
|
|
302
|
+
export const BUNDLE_BUILD_FINGERPRINT = "bundle-2026-08-08.4";
|
|
303
303
|
|
|
304
304
|
/** Parse the tenant's install manifest, or null when absent/corrupt. */
|
|
305
305
|
export function readTenantManifest(homeDir = os.homedir(), tenantId = null) {
|
package/src/desktopTasks.js
CHANGED
|
@@ -509,12 +509,16 @@ if (
|
|
|
509
509
|
const parseBounds = (url, window) => {
|
|
510
510
|
const parsed = new URL(url);
|
|
511
511
|
const content = window.getContentBounds();
|
|
512
|
+
const interactiveTop = process.platform === "darwin" ? 48 : 0;
|
|
512
513
|
const number = (name, fallback) => {
|
|
513
514
|
const value = Number.parseInt(parsed.searchParams.get(name) || "", 10);
|
|
514
515
|
return Number.isFinite(value) ? value : fallback;
|
|
515
516
|
};
|
|
516
517
|
const x = Math.max(0, Math.min(content.width - 240, number("x", 0)));
|
|
517
|
-
const y = Math.max(
|
|
518
|
+
const y = Math.max(
|
|
519
|
+
interactiveTop,
|
|
520
|
+
Math.min(content.height - 240, number("y", 0)),
|
|
521
|
+
);
|
|
518
522
|
return {
|
|
519
523
|
x,
|
|
520
524
|
y,
|
|
@@ -606,7 +610,13 @@ if (
|
|
|
606
610
|
const nativeBoardBounds = (window) => {
|
|
607
611
|
const content = window.getContentBounds();
|
|
608
612
|
const x = Math.min(296, Math.max(0, content.width - 240));
|
|
609
|
-
|
|
613
|
+
const interactiveTop = process.platform === "darwin" ? 48 : 0;
|
|
614
|
+
return {
|
|
615
|
+
x,
|
|
616
|
+
y: interactiveTop,
|
|
617
|
+
width: Math.max(240, content.width - x),
|
|
618
|
+
height: Math.max(240, content.height - interactiveTop),
|
|
619
|
+
};
|
|
610
620
|
};
|
|
611
621
|
|
|
612
622
|
const layoutNativeNav = (window) => {
|
|
@@ -825,7 +835,15 @@ if (
|
|
|
825
835
|
}
|
|
826
836
|
if (request?.method === "tools/call") {
|
|
827
837
|
const name = request?.params?.name;
|
|
828
|
-
const allowed = new Set([
|
|
838
|
+
const allowed = new Set([
|
|
839
|
+
"show_tasks",
|
|
840
|
+
"list_tasks",
|
|
841
|
+
"get_task",
|
|
842
|
+
"list_members",
|
|
843
|
+
"create_task",
|
|
844
|
+
"update_task",
|
|
845
|
+
"delete_task",
|
|
846
|
+
]);
|
|
829
847
|
if (!allowed.has(name)) throw new Error("Unsupported Tasks tool.");
|
|
830
848
|
const args = request?.params?.arguments;
|
|
831
849
|
if (args != null && (typeof args !== "object" || Array.isArray(args))) {
|