tandem-editor 0.11.1 → 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 +6 -0
- package/dist/cli/index.js +1 -1
- package/dist/client/assets/{CoworkSettings-BfROGjTw.js → CoworkSettings-DK3jjdwK.js} +1 -1
- package/dist/client/assets/{index-BEmR1MMN.js → index-CfT503n4.js} +39 -39
- package/dist/client/index.html +1 -1
- package/dist/server/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.11.2] - 2026-05-13
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **`effect_update_depth_exceeded` on Tauri launch (PR #614, closes #613)** — installed v0.11.1 desktop builds threw Svelte's effect-depth error immediately on launch; the dev build (`npm run dev:tauri`) did not reproduce, narrowing the trigger to production-mode effect-flush scheduling. Three defense-in-depth fixes: (1) the authorship-toggle effect in `App.svelte` no longer dispatches a ProseMirror transaction on its first run — the plugin already reads `localStorage[AUTHORSHIP_TOGGLE_KEY]` at construction so the editor starts in the correct state; (2) rail-tab reconcile effects now `untrack` their writes to break any read-then-write self-dep; (3) the SettingsPopover error-clear effect skips assignment when values are already null. The existing in-code comment had explicitly warned this dispatch could "exceed the 1000-update depth limit"; under prod's tighter effect scheduling it did.
|
|
15
|
+
|
|
10
16
|
## [0.11.1] - 2026-05-13
|
|
11
17
|
|
|
12
18
|
### Added
|
package/dist/cli/index.js
CHANGED
|
@@ -1872,7 +1872,7 @@ process.once("unhandledRejection", (reason) => {
|
|
|
1872
1872
|
`);
|
|
1873
1873
|
process.exit(1);
|
|
1874
1874
|
});
|
|
1875
|
-
var version = true ? "0.11.
|
|
1875
|
+
var version = true ? "0.11.2" : "0.0.0-dev";
|
|
1876
1876
|
var args = process.argv.slice(2);
|
|
1877
1877
|
var isStdioMode = args[0] === "mcp-stdio" || args[0] === "channel";
|
|
1878
1878
|
if (!isStdioMode) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{p as Fa,c as La,o as Oa,s,a as i,i as k,g as a,b as l,d as Ra,e as N,m as Da,u as $,f as Na,h as d,t as f,j as C,T as Aa,k as Ba,l as Z,n as w,q as S,r as _,v as c,w as Ma,x as Wa,C as Ua,y as aa,z as ja,A as Pa,B as ea,D as Va,E as Ka,F as qa,G as Ga}from"./index-
|
|
1
|
+
import{p as Fa,c as La,o as Oa,s,a as i,i as k,g as a,b as l,d as Ra,e as N,m as Da,u as $,f as Na,h as d,t as f,j as C,T as Aa,k as Ba,l as Z,n as w,q as S,r as _,v as c,w as Ma,x as Wa,C as Ua,y as aa,z as ja,A as Pa,B as ea,D as Va,E as Ka,F as qa,G as Ga}from"./index-CfT503n4.js";var Ha=c('<div data-testid="cowork-settings-loading" style="font-size: 12px; color: var(--tandem-fg-subtle);">Loading Cowork status...</div>'),Ja=c(`<div data-testid="cowork-settings-unsupported">Cowork integration is available on Windows in v0.8.0. macOS/Linux support tracked in #316 /
|
|
2
2
|
#317.</div>`),Qa=c('<div data-testid="cowork-settings-undetected"> <a target="_blank" rel="noreferrer" style="color: var(--tandem-accent);">Learn more</a></div>'),Xa=c(`<div data-testid="cowork-enable-confirm" role="dialog" style="border: 1px solid var(--tandem-warning-border); background: var(--tandem-warning-bg); color: var(--tandem-warning-fg-strong); border-radius: var(--tandem-r-3); padding: 8px 10px; font-size: 12px;"><div style="font-weight: 600; margin-bottom: 4px;">Confirm: Enable Cowork</div> <div style="margin-bottom: 8px;">Windows will prompt for admin permission to modify firewall rules. This is expected.
|
|
3
3
|
Tandem will write plugin entries to every detected Cowork workspace.</div> <div style="display: flex; gap: 8px;"><button data-testid="cowork-enable-confirm-btn" type="button">Enable</button> <button data-testid="cowork-enable-cancel-btn" type="button">Cancel</button></div></div>`),Ya=c('<div data-testid="cowork-vethernet-cidr" style="font-size: 12px;">Detected VM subnet: <code> </code></div>'),Za=c('<div><label data-testid="cowork-lan-ip-override"><input data-testid="cowork-lan-ip-override-checkbox" type="checkbox" style="accent-color: var(--tandem-accent);"/> <span>Use LAN IP instead of host.docker.internal</span></label> <div> </div></div>'),ae=c('<div style="font-size: 12px; color: var(--tandem-fg-subtle);">No Cowork workspaces detected yet.</div>'),ee=c('<a href="mailto:maintainers@tandem.invalid?subject=Cowork%20schema%20drift" style="color: var(--tandem-error-fg-strong); text-decoration: underline;">Report</a>'),te=c('<div><span style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"> </span> <span style="font-weight: 600; white-space: nowrap;"> </span> <!></div>'),re=c('<div data-testid="cowork-workspace-table" style="display: flex; flex-direction: column; gap: 4px;"></div>'),oe=c('<label data-testid="cowork-toggle"><input data-testid="cowork-toggle-checkbox" type="checkbox" style="accent-color: var(--tandem-accent);"/> <span>Enable Cowork integration</span></label> <div> </div> <!> <!> <!> <div><div> </div> <!> <button data-testid="cowork-rescan-btn" type="button">Re-scan workspaces</button></div>',1),ne=c('<div data-testid="cowork-settings-error" role="alert"> </div>'),de=c('<div data-testid="cowork-inline-toast" role="alert"> </div>'),ie=c('<div data-testid="cowork-settings" style="display: flex; flex-direction: column; gap: 10px;"><div>Cowork Integration</div> <!> <!> <!></div>');function le(ta,ra){Fa(ra,!0);const oa={success:{bg:"var(--tandem-success-bg)",fg:"var(--tandem-success-fg-strong)",border:"var(--tandem-success-border)"},warning:{bg:"var(--tandem-warning-bg)",fg:"var(--tandem-warning-fg-strong)",border:"var(--tandem-warning-border)"},error:{bg:"var(--tandem-error-bg)",fg:"var(--tandem-error-fg-strong)",border:"var(--tandem-error-border)"}},A="font-size: 11px; font-weight: 600; color: var(--tandem-fg); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px;",B="font-size: 10px; color: var(--tandem-fg-subtle); margin-top: 4px;",M="border: 1px solid var(--tandem-info-border); background: var(--tandem-info-bg); color: var(--tandem-info-fg-strong); border-radius: var(--tandem-r-3); padding: 8px 10px; font-size: 12px;",W="border: 1px solid var(--tandem-error-border); background: var(--tandem-error-bg); color: var(--tandem-error-fg-strong); border-radius: var(--tandem-r-3); padding: 8px 10px; font-size: 12px;",na="padding: 4px 10px; font-size: 12px; border: 1px solid var(--tandem-accent); border-radius: var(--tandem-r-2); background: var(--tandem-accent); color: var(--tandem-accent-fg); cursor: pointer; font-weight: 600;",da="padding: 4px 10px; font-size: 12px; border: 1px solid var(--tandem-border-strong); border-radius: var(--tandem-r-2); background: var(--tandem-surface); color: var(--tandem-fg-muted); cursor: pointer;",u=La(()=>!0),{refetch:I}=u;let z=N(null),T=N(null),b=N(!1);const U=Da(Ua);Oa(()=>U.cancel());const F=$(()=>Na(u.status));async function E(t,e){_(b,!0);try{const n=await Ma();await t(n),_(z,null)}catch(n){const x=n instanceof Error?n.message:String(n),y=Wa(x);_(z,`${e}: ${y}`)}finally{_(b,!1)}}async function ia(){await E(async t=>{await aa(t,!0),await I(),_(T,null)},"Failed to enable Cowork")}async function sa(){await E(async t=>{await aa(t,!1),await I()},"Failed to disable Cowork")}function la(){U.schedule(()=>{E(async t=>{await ja(t),await I()},"Re-scan failed")})}async function ca(t){await E(async e=>{await qa(e,t),await I()},"Failed to update LAN-IP override")}function va(t){const e=ea(t),n=oa[Ga(e)];return`display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 4px 6px; border: 1px solid ${n.border}; background: ${n.bg}; color: ${n.fg}; border-radius: var(--tandem-r-2); font-size: 11px;`}var j=ie(),P=d(j);s(P,A);var V=i(P,2);{var pa=t=>{var e=Ha();l(t,e)},ga=t=>{var e=Ja();s(e,M),l(t,e)},ba=t=>{var e=Qa();s(e,M);var n=d(e);n.nodeValue="Cowork not detected on this system. ";var x=i(n);f(()=>C(x,"href",`${Aa}#cowork`)),l(t,e)},fa=t=>{const e=$(()=>u.status);var n=oe(),x=Ba(n),y=d(x),L=i(x,2);s(L,B);var wa=d(L),q=i(L,2);{var xa=o=>{var v=Xa(),p=i(d(v),4),r=d(p);s(r,na);var g=i(r,2);s(g,da),f(()=>{r.disabled=a(b),g.disabled=a(b)}),S("click",r,()=>void ia()),S("click",g,()=>{_(T,null)}),l(o,v)};k(q,o=>{a(T)==="enable"&&o(xa)})}var G=i(q,2);{var _a=o=>{var v=Ya(),p=i(d(v)),r=d(p);f(()=>w(r,a(e).vethernetCidr)),l(o,v)};k(G,o=>{a(e).vethernetCidr!==null&&o(_a)})}var H=i(G,2);{var ya=o=>{var v=Za(),p=d(v),r=d(p),g=i(p,2);s(g,B);var D=d(g);f(()=>{s(p,`display: flex; align-items: center; gap: 8px; font-size: 12px; cursor: ${a(b)?"wait":"pointer"};`),Z(r,a(e).useLanIpOverride),r.disabled=a(b),w(D,`Fallback: ${a(e).lanIpFallback??""}`)}),S("change",r,m=>void ca(m.target.checked)),l(o,v)};k(H,o=>{a(e).lanIpFallback!==null&&o(ya)})}var ha=i(H,2),O=d(ha);s(O,A);var Ca=d(O),J=i(O,2);{var Sa=o=>{var v=ae();l(o,v)},Ia=o=>{var v=re();Pa(v,21,()=>a(e).workspaces,p=>`${p.workspaceId}/${p.vmId}`,(p,r)=>{const g=$(()=>ea(a(r))),D=$(()=>Va(a(g)));var m=te(),Q=d(m),za=d(Q),X=i(Q,2),Ta=d(X),Ea=i(X,2);{var $a=h=>{var Y=ee();f(()=>C(Y,"data-testid",`cowork-workspace-report-${a(r).workspaceId}-${a(r).vmId}`)),l(h,Y)};k(Ea,h=>{a(g)==="schemaDrift"&&h($a)})}f(h=>{C(m,"data-testid",`cowork-workspace-row-${a(r).workspaceId}-${a(r).vmId}`),C(m,"data-status",a(g)),C(m,"title",a(r).failureDetail??a(r).path),s(m,h),w(za,`${a(r).workspaceId??""} / ${a(r).vmId??""}`),w(Ta,a(D))},[()=>va(a(r))]),l(p,m)}),l(o,v)};k(J,o=>{a(e).workspaces.length===0?o(Sa):o(Ia,-1)})}var R=i(J,2);s(R,"padding: 4px 10px; font-size: 12px; border: 1px solid var(--tandem-border-strong); border-radius: var(--tandem-r-2); background: var(--tandem-surface); color: var(--tandem-fg-muted); cursor: pointer; margin-top: 8px;"),f(()=>{s(x,`display: flex; align-items: center; gap: 8px; cursor: ${a(b)?"wait":"pointer"}; font-size: 12px; color: var(--tandem-fg); min-height: 24px;`),Z(y,a(e).enabled),y.disabled=a(b),w(wa,`Token provisioned: ${a(e).enabled?"yes":"no"}`),w(Ca,`Workspaces (${a(e).workspaces.length??""})`),R.disabled=a(b)}),S("change",y,o=>{o.target.checked?_(T,"enable"):sa()}),S("click",R,la),l(t,n)};k(V,t=>{u.loading?t(pa):a(F)==="unsupported"?t(ga,1):a(F)==="undetected"?t(ba,2):a(F)==="normal"&&u.status!==null&&t(fa,3)})}var K=i(V,2);{var ua=t=>{var e=ne();s(e,W);var n=d(e);f(()=>w(n,`Failed to load Cowork status: ${u.error??""}`)),l(t,e)};k(K,t=>{u.error&&!u.status&&t(ua)})}var ma=i(K,2);{var ka=t=>{var e=de();s(e,W);var n=d(e);f(()=>w(n,a(z))),l(t,e)};k(ma,t=>{a(z)&&t(ka)})}l(ta,j),Ra()}Ka(["change","click"]);export{le as default};
|