@1agh/maude 1.2.0 → 1.3.0
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 +3 -1
- package/apps/studio/acp/index.ts +43 -7
- package/apps/studio/annotations-layer.tsx +191 -116
- package/apps/studio/annotations-model.ts +39 -0
- package/apps/studio/annotations-sync.ts +50 -0
- package/apps/studio/api.ts +689 -36
- package/apps/studio/bin/annotate.mjs +3 -1
- package/apps/studio/bin/server-up.sh +17 -2
- package/apps/studio/canvas-edit.ts +391 -7
- package/apps/studio/canvas-lib.tsx +82 -18
- package/apps/studio/canvas-notice-message.ts +16 -0
- package/apps/studio/canvas-notifications.tsx +19 -0
- package/apps/studio/canvas-shell.tsx +57 -6
- package/apps/studio/client/app.jsx +686 -241
- package/apps/studio/client/apply-edit-request.ts +55 -0
- package/apps/studio/client/export-center.jsx +111 -61
- package/apps/studio/client/github.js +38 -1
- package/apps/studio/client/index-loader.ts +76 -0
- package/apps/studio/client/panels/CloudBar.jsx +52 -6
- package/apps/studio/client/panels/GitPanel.jsx +103 -0
- package/apps/studio/client/panels/OnboardingWizard.jsx +36 -7
- package/apps/studio/client/panels/RepoBranchSwitcher.jsx +92 -27
- package/apps/studio/client/panels/SourceConflictPanel.jsx +166 -0
- package/apps/studio/client/panels/SyncPanel.jsx +113 -0
- package/apps/studio/client/panels/TeamProjects.jsx +376 -0
- package/apps/studio/client/panels/file-deep-link-dialog.jsx +54 -0
- package/apps/studio/client/photo-knobs.jsx +3 -0
- package/apps/studio/client/share-dialog.jsx +91 -0
- package/apps/studio/client/share-link.js +94 -0
- package/apps/studio/client/styles/3-shell-maude.css +35 -18
- package/apps/studio/client/styles/4-components.css +18 -1
- package/apps/studio/client/tree-row-menu.jsx +48 -3
- package/apps/studio/client/whats-new.jsx +26 -32
- package/apps/studio/cloud/endpoints.ts +132 -0
- package/apps/studio/collab/index.ts +4 -0
- package/apps/studio/collab/persistence.ts +5 -1
- package/apps/studio/collab/registry.ts +9 -3
- package/apps/studio/collab/room.ts +13 -2
- package/apps/studio/context.ts +59 -0
- package/apps/studio/dist/client.bundle.js +1586 -1554
- package/apps/studio/dist/runtime/.min-sizes.json +1 -0
- package/apps/studio/dist/runtime/sonner.js +1 -0
- package/apps/studio/dist/styles.css +1 -1
- package/apps/studio/http.ts +289 -18
- package/apps/studio/inspect.ts +19 -0
- package/apps/studio/managed-projects.ts +150 -0
- package/apps/studio/notifications.tsx +292 -0
- package/apps/studio/runtime-bundle.ts +2 -0
- package/apps/studio/server.ts +59 -3
- package/apps/studio/sync/accepted-cold-start.ts +225 -0
- package/apps/studio/sync/accepted-link.ts +320 -0
- package/apps/studio/sync/action-stage.ts +343 -0
- package/apps/studio/sync/agent.ts +12 -60
- package/apps/studio/sync/cell-file-events.ts +3 -0
- package/apps/studio/sync/codec.ts +73 -6
- package/apps/studio/sync/ctl-provider.ts +15 -2
- package/apps/studio/sync/document-discovery.ts +81 -0
- package/apps/studio/sync/file-membership.ts +10 -2
- package/apps/studio/sync/file-plane.ts +309 -26
- package/apps/studio/sync/index.ts +1078 -19
- package/apps/studio/sync/migrate-seed.ts +110 -19
- package/apps/studio/sync/poke.ts +4 -2
- package/apps/studio/sync/presentation.ts +285 -2
- package/apps/studio/sync/projection.ts +820 -23
- package/apps/studio/sync/repeated-module.ts +73 -0
- package/apps/studio/sync/revision-barrier.ts +129 -0
- package/apps/studio/sync/seed-repair.ts +46 -0
- package/apps/studio/sync/source-merge.ts +100 -0
- package/apps/studio/sync/source-ops.ts +289 -0
- package/apps/studio/sync/source-recovery.ts +70 -0
- package/apps/studio/sync/source-validation.ts +56 -0
- package/apps/studio/sync/status.ts +79 -1
- package/apps/studio/sync/transaction-client.ts +460 -0
- package/apps/studio/sync/writer-registry.ts +236 -0
- package/apps/studio/text-caret.ts +35 -0
- package/apps/studio/undo-hud.tsx +9 -87
- package/apps/studio/use-canvas-media-drop.tsx +4 -39
- package/apps/studio/whats-new.json +101 -0
- package/cli/lib/harness/codex-runtime.mjs +4 -1
- package/package.json +9 -8
- package/plugins/design/dependencies.json +3 -3
- package/plugins/design/templates/_shell.html +47 -0
- package/plugins/flow/dependencies.json +3 -3
|
@@ -138,6 +138,7 @@
|
|
|
138
138
|
"react-dom/client": "./_canvas-runtime/react-dom_client.js",
|
|
139
139
|
"react/jsx-runtime": "./_canvas-runtime/react_jsx-runtime.js",
|
|
140
140
|
"react/jsx-dev-runtime": "./_canvas-runtime/react_jsx-dev-runtime.js",
|
|
141
|
+
"sonner": "./_canvas-runtime/sonner.js",
|
|
141
142
|
"pixi.js": "./_canvas-runtime/pixi-js.js",
|
|
142
143
|
"@imgly/background-removal": "./_canvas-runtime/@imgly_background-removal.js",
|
|
143
144
|
"motion": "./_canvas-runtime/motion.js",
|
|
@@ -331,6 +332,7 @@
|
|
|
331
332
|
// - module: location.reload() — the canvas module re-fetches.
|
|
332
333
|
// - hard: location.reload() — _lib/* changed, everything re-bundles.
|
|
333
334
|
// The WS connection retries on close (dev-server restart resilience).
|
|
335
|
+
const pendingMediaHeals = new WeakMap();
|
|
334
336
|
function connectHmr() {
|
|
335
337
|
const proto = location.protocol === 'https:' ? 'wss' : 'ws';
|
|
336
338
|
// `base` for the same reason every other URL here carries it: on the
|
|
@@ -534,6 +536,51 @@
|
|
|
534
536
|
// working one is a cheap refetch of now-cached bytes.
|
|
535
537
|
el.setAttribute('href', href.split('?')[0] + '?v=' + v);
|
|
536
538
|
}
|
|
539
|
+
// A reference can reach a peer before its video/audio bytes.
|
|
540
|
+
// Retry failed players when those bytes arrive, without resetting
|
|
541
|
+
// healthy playback or dropping capability parameters from the URL.
|
|
542
|
+
const arrivedUrl = new URL(withCap('/' + designRel + '/' + msg.file), document.baseURI);
|
|
543
|
+
for (const media of document.querySelectorAll('video, audio')) {
|
|
544
|
+
if (media.readyState > 0) continue;
|
|
545
|
+
const candidates = media.hasAttribute('src')
|
|
546
|
+
? [media]
|
|
547
|
+
: Array.from(media.querySelectorAll('source[src]'));
|
|
548
|
+
const targets = candidates.flatMap((target) => {
|
|
549
|
+
const src = target.getAttribute('src');
|
|
550
|
+
if (!src) return [];
|
|
551
|
+
try {
|
|
552
|
+
const url = new URL(src, document.baseURI);
|
|
553
|
+
if (url.origin !== arrivedUrl.origin || url.pathname !== arrivedUrl.pathname) return [];
|
|
554
|
+
url.searchParams.set('v', String(v));
|
|
555
|
+
return [{ target, src, next: url.href }];
|
|
556
|
+
} catch { return []; }
|
|
557
|
+
});
|
|
558
|
+
if (!targets.length) continue;
|
|
559
|
+
pendingMediaHeals.get(media)?.();
|
|
560
|
+
const clear = () => {
|
|
561
|
+
media.removeEventListener('error', retry, true);
|
|
562
|
+
media.removeEventListener('loadedmetadata', clear);
|
|
563
|
+
media.removeEventListener('emptied', clear);
|
|
564
|
+
pendingMediaHeals.delete(media);
|
|
565
|
+
};
|
|
566
|
+
const retry = () => {
|
|
567
|
+
clear();
|
|
568
|
+
if (!media.isConnected || media.readyState > 0) return;
|
|
569
|
+
if (targets.some(({ target, src }) => target.getAttribute('src') !== src)) return;
|
|
570
|
+
for (const { target, next } of targets) target.setAttribute('src', next);
|
|
571
|
+
media.load();
|
|
572
|
+
};
|
|
573
|
+
if (media.error || media.networkState === 3) {
|
|
574
|
+
retry();
|
|
575
|
+
} else if (media.networkState === 2) {
|
|
576
|
+
// The initial response can still be an older in-flight 404.
|
|
577
|
+
// One arrival permits one retry; success/source change cancels it.
|
|
578
|
+
pendingMediaHeals.set(media, clear);
|
|
579
|
+
media.addEventListener('error', retry, true);
|
|
580
|
+
media.addEventListener('loadedmetadata', clear);
|
|
581
|
+
media.addEventListener('emptied', clear);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
537
584
|
}
|
|
538
585
|
} catch (e) {
|
|
539
586
|
console.warn('[canvas-shell] HMR message parse error', e);
|
|
@@ -101,11 +101,11 @@
|
|
|
101
101
|
"hardness": "soft",
|
|
102
102
|
"check": {
|
|
103
103
|
"command": "kg version",
|
|
104
|
-
"expectExit": 0
|
|
104
|
+
"expectExit": 0,
|
|
105
|
+
"minVersion": "1.5.1"
|
|
105
106
|
},
|
|
106
107
|
"install": {
|
|
107
|
-
"preferred": "
|
|
108
|
-
"darwin": "curl -fsSL https://github.com/kgaidev/kgai/releases/download/v1.0.0/kg-darwin-arm64 -o /usr/local/bin/kg && chmod +x /usr/local/bin/kg"
|
|
108
|
+
"preferred": "Install kgai >= 1.5.1 using https://github.com/kgaidev/kgai installation instructions; reuse the existing trusted store. Classic file workflows need no kgai installation."
|
|
109
109
|
},
|
|
110
110
|
"autoInstall": false,
|
|
111
111
|
"fallbackBehavior": "flow/design fall back to the classic .ai/decisions/ + STATE.md file path (no regression). The kgai knowledge-graph backend (kg context/ingest/sync, cross-repo company memory) is inactive.",
|