Skip to content

Commit 004dfdb

Browse files
mogera551claude
andcommitted
chore: bump release references to v1.33.0
Follow wcstack v1.33.0 (2026-09-02) - the syntax release: the whole-object mount lands, named state begins its exit toward v2, and two dev-tool packages arrive. What's New carries four cards: `state: path` mounting a whole subtree as a component's root (state: . for rows, longest-prefix partial mounts, R1 private keys, and the invariant carried into v2 - a mounted component indistinguishable from the template inlined at the mount point), named state deprecated (a drive letter next to a filesystem root; per-site lint replacements, @default just drops, Light DOM exempt), @wcstack/typescript (wcs-schema type-to-sidecar-to-error ladder, wcs-tsc over inline scripts, --strict, HTMLElementTagNameMap), and @wcstack/testing (mount/settle/fire - the README recipe as one import, waiting with renderToString's own stabilization loop). Hero stat 45 -> 47 for @wcstack/typescript and @wcstack/testing. state/ marks the Named state section deprecated (en/ja, legacy-labeled code block) and adds the Whole-object mount subsection to Building components. build-llms.mjs classifies typescript and testing as TOOLING so the llms.txt I/O count stays honest at 38; llms regenerated at v1.33.0 against a clean v1.33.0 worktree via WCSTACK_DIR (the monorepo checkout sits on the v2 work branch) with the skill content taken from the docs/wcs-tsc branch, which carries the v1.33.0 skill release. sitemap lastmod 2026-09-03. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 1a87f81 commit 004dfdb

7 files changed

Lines changed: 187 additions & 155 deletions

File tree

‎index.html‎

Lines changed: 45 additions & 74 deletions
Large diffs are not rendered by default.

‎llms-full.txt‎

Lines changed: 70 additions & 15 deletions
Large diffs are not rendered by default.

‎llms.txt‎

Lines changed: 58 additions & 56 deletions
Large diffs are not rendered by default.

‎scripts/build-llms.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const wcstackDir = process.env.WCSTACK_DIR ?? path.resolve(siteRoot, "..", "wcst
1919
const skillDir = process.env.WCSTACK_SKILL_DIR ?? path.resolve(siteRoot, "..", "wcstack-skill");
2020

2121
const CORE = ["state", "router", "signals"];
22-
const TOOLING = ["devtools", "autoloader", "server", "lint", "vscode-wcs"];
22+
const TOOLING = ["devtools", "autoloader", "server", "lint", "vscode-wcs", "typescript", "testing"];
2323
const ENTRY = ["wcstack"];
2424
const SKIP = new Set(["poc-visual-editor"]);
2525

‎signals/index.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ <h1 class="pkg-title">@wcstack/signals</h1>
308308
<p class="pkg-sub">A signals-based, <strong>fine-grained</strong> reactive core &mdash; <code style="font-family:var(--mono)">signal</code> / <code style="font-family:var(--mono)">computed</code> / <code style="font-family:var(--mono)">effect</code>, async resources, a no-VDOM DOM layer, and bridges for wc-bindable elements or their headless Cores. Zero runtime dependencies, buildless, standards-first.</p>
309309
<p class="pkg-sub-ja">シグナルベースの細粒度リアクティブコア。TC39形のAPI、非同期resource、VDOMなしのDOM層、wc-bindable要素とヘッドレスCoreのブリッジ。ランタイム依存ゼロ。</p>
310310
<div class="pill-row">
311-
<span class="pill accent">v1.32.0</span>
311+
<span class="pill accent">v1.33.0</span>
312312
<span class="pill">@wcstack/signals</span>
313313
<span class="pill">core &asymp;3.1 KB gz</span>
314314
<span class="pill">dom +&asymp;3.8 KB gz</span>

‎sitemap.xml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>https://wcstack.github.io/</loc>
5-
<lastmod>2026-08-30</lastmod>
5+
<lastmod>2026-09-03</lastmod>
66
<changefreq>weekly</changefreq>
77
<priority>1.0</priority>
88
</url>
99
<url>
1010
<loc>https://wcstack.github.io/state/</loc>
11-
<lastmod>2026-08-30</lastmod>
11+
<lastmod>2026-09-03</lastmod>
1212
<changefreq>weekly</changefreq>
1313
<priority>0.8</priority>
1414
</url>
1515
<url>
1616
<loc>https://wcstack.github.io/signals/</loc>
17-
<lastmod>2026-08-30</lastmod>
17+
<lastmod>2026-09-03</lastmod>
1818
<changefreq>weekly</changefreq>
1919
<priority>0.8</priority>
2020
</url>

‎state/index.html‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ <h1 class="pkg-title">&lt;wcs-state&gt;</h1>
320320
<p class="pkg-sub">Reactive state management with declarative data binding. The <strong>only</strong> contract between UI and state is a path string &mdash; <code style="font-family:var(--mono)">user.name</code>, <code style="font-family:var(--mono)">cart.items.*.subtotal</code>. No virtual DOM, no build step, no hooks.</p>
321321
<p class="pkg-sub-ja">パス文字列だけがUIと状態の契約。仮想DOMなし、ビルドなし、フックなし。ES Proxyによる純粋なリアクティビティ。</p>
322322
<div class="pill-row">
323-
<span class="pill accent">v1.32.0</span>
323+
<span class="pill accent">v1.33.0</span>
324324
<span class="pill">@wcstack/state</span>
325325
<span class="pill">0 dependencies</span>
326326
<span class="pill">buildless</span>
@@ -426,11 +426,11 @@ <h3>State sources (resolution order)</h3>
426426
<li><code>setInitialState()</code> &rarr; programmatic API</li>
427427
</ol>
428428

429-
<h3>Named state</h3>
430-
<p>Give a state a <code>name</code> and address it from anywhere with <code>path@name</code>.</p>
431-
<p class="ja">nameを付けると、どこからでもpath@nameで参照できる。</p>
429+
<h3>Named state <span style="font-size:0.7em;opacity:0.75">(deprecated in v1.33.0 &mdash; removed in v2)</span></h3>
430+
<p>Give a state a <code>name</code> and address it from anywhere with <code>path@name</code>. <strong>Deprecated as of v1.33.0</strong>: the name is a second axis next to the path, and v2 removes it in favor of mounts (<code>&lt;wcs-state mount="cart"&gt;</code> grafts the state onto the root tree; bindings read <code>cart.total</code>). Nothing changes in 1.x &mdash; the linter reports each site as <code>wcs/named-state-deprecated</code> with its replacement, and a <code>@default</code> selector can simply be dropped. Avoid the form in new code; Light DOM <code>bind-component</code>, where <code>name</code> is still required, is exempt.</p>
431+
<p class="ja">nameを付けると、どこからでもpath@nameで参照できる。<strong>v1.33.0で非推奨</strong>: nameはパスの隣の第二の軸であり、v2はこれをmount(<code>&lt;wcs-state mount="cart"&gt;</code>がstateをルートの木に接ぎ木し、バインディングは<code>cart.total</code>と読む)に置き換えて削除する。1.xでは何も変わらない &mdash; linterが各使用箇所を<code>wcs/named-state-deprecated</code>として置き換え付きで報告し、<code>@default</code>セレクタは単に外せばよい。新しいコードでは使わないこと。<code>name</code>が今も必須のLight DOM <code>bind-component</code>は対象外。</p>
432432
<div class="code-block">
433-
<div class="code-header"><span class="filename">index.html</span><span>Named state</span></div>
433+
<div class="code-header"><span class="filename">index.html</span><span>Named state (legacy)</span></div>
434434
<pre><code class="language-html">&lt;wcs-state name="cart"&gt;...&lt;/wcs-state&gt;
435435

436436
&lt;div data-wcs="textContent: total@cart"&gt;&lt;/div&gt;</code></pre>
@@ -922,6 +922,10 @@ <h3>Host binding</h3>
922922
</div>
923923
<p>A standalone component can await readiness with <code>async $stateReadyCallback(stateProp)</code>.</p>
924924

925+
<h3>Whole-object mount: <code>state: path</code> <span style="font-size:0.7em;opacity:0.75">(v1.33.0)</span></h3>
926+
<p>Instead of wiring property by property, mount a <strong>whole subtree</strong> as the component&rsquo;s root &mdash; inside the component every path is relative to the mount point: <code>&lt;user-card data-wcs="state: user"&gt;</code> makes <code>name</code> inside <em>be</em> <code>user.name</code> (reads, writes, getters and <code>for:</code> included). In a loop, mount the row itself: <code>&lt;user-row data-wcs="state: ."&gt;</code>. Partial mounts coexist by longest prefix (<code>state: user; state.theme: theme</code>); the component&rsquo;s own keys stay <strong>private</strong> and shadowing a mount-point key warns once (<code>wcs/mount-own-key-shadow</code>). An array cannot be the mount root in 1.x &mdash; mount the row or the object holding the array.</p>
927+
<p class="ja">プロパティを1つずつ結線する代わりに、<strong>サブツリー全体</strong>をコンポーネントのルートとしてマウントする &mdash; 内側ではすべてのパスがマウント点からの相対になる。<code>&lt;user-card data-wcs="state: user"&gt;</code>なら内側の<code>name</code>は<em>そのまま</em><code>user.name</code>(読み・書き・getter・<code>for:</code>を含む)。ループでは行そのものをマウントする: <code>&lt;user-row data-wcs="state: ."&gt;</code>。部分マウントは最長プレフィクス勝ちで共存し(<code>state: user; state.theme: theme</code>)、コンポーネント自身のキーは<strong>private</strong>のまま、マウント先のキーを隠すと一度だけ警告される(<code>wcs/mount-own-key-shadow</code>)。1.xでは配列をマウントルートにできない &mdash; 行か、配列を持つオブジェクトをマウントする。</p>
928+
925929
<h3>Declarative Custom Components (DCC)</h3>
926930
<p>Define a reusable custom element <strong>entirely in HTML</strong> with <code>data-wc-definition</code>. Each instance gets its own state; <code>$bindables</code> declares the properties exposed through the <code>wc-bindable</code> protocol (with <code>CustomEvent</code> dispatch like <code>my-counter:count-changed</code>).</p>
927931
<p class="ja">data-wc-definitionでHTMLだけの再利用可能コンポーネントを定義。各インスタンスは独立した状態を持ち、$bindablesで公開プロパティを宣言。</p>

0 commit comments

Comments
 (0)