Skip to content

feat: add <context> core tag - #3336

Open
DylanPiercey wants to merge 1 commit into
mainfrom
claude/marko-context-tag-review-ukuhm3
Open

feat: add <context> core tag#3336
DylanPiercey wants to merge 1 commit into
mainfrom
claude/marko-context-tag-review-ukuhm3

Conversation

@DylanPiercey

@DylanPiercey DylanPiercey commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Description

Adds the <context> core tag: provide a value to a tag's body content and consume it anywhere below in the render tree with a statically resolved from= reference (a tag name like "<cart-provider>" or a relative template path like "./+layout.marko").

<context=cart>
  <checkout-panel/>
</context>
<context/cart from="<cart-provider>"/>
<span>${cart.length}</span>

Resolution is render-tree (dynamic extent), so providers work through passed content. Providers are classified at compile time:

  • Server-only (immutable) contexts — literals, static/module values, $global-derived — contribute zero client code: no provider import, no registry, no subscription machinery. Enforced by an executable bundle_excludes assertion in the test harness, not just snapshots.
  • Mutable contexts (state-derived values) fan changes out to consumers fine-grained, resume subscriptions without re-rendering, and resolve from client-created branches (e.g. a consumer inside an <if> toggled after hydration, including providers nested in keyed <for> iterations). The bind shorthand (<context:=cart>) makes a provider writable: consumer assignment routes through the provider's change handler and fans back out.

Includes a changeset, compile diagnostics with fixtures, and 83 fixture test cases.

Checklist:

  • I have read the CONTRIBUTING document and have signed (or will sign) the CLA.
  • I have updated/added documentation affected by my changes.
  • I have added tests to cover my changes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SsZZbkMsjMbDCQLxkrbqE9

@changeset-bot

changeset-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9cba943

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
marko Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@linux-foundation-easycla

linux-foundation-easycla Bot commented Jul 8, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: DylanPiercey / name: Dylan Piercey (639508e)

@DylanPiercey
DylanPiercey force-pushed the claude/marko-context-tag-review-ukuhm3 branch from 2b2685b to 639508e Compare July 8, 2026 21:25
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR adds a new <context> core tag with compiler analysis, HTML and DOM runtime support, and tag registry wiring. It also adds fixture coverage for basic, mutable, deferred, server-only, shadowing, self-consuming, writable, and error cases, plus test harness bundle-exclusion checks and updated size snapshots.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 9.09% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding the core tag.
Description check ✅ Passed The description accurately matches the implemented tag behavior, tests, and documentation changes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/marko-context-tag-review-ukuhm3

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.25%. Comparing base (7f786f2) to head (9cba943).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3336      +/-   ##
==========================================
- Coverage   94.28%   94.25%   -0.03%     
==========================================
  Files         388      391       +3     
  Lines       53077    54316    +1239     
  Branches     4232     4362     +130     
==========================================
+ Hits        50046    51198    +1152     
- Misses       3003     3085      +82     
- Partials       28       33       +5     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@DylanPiercey
DylanPiercey force-pushed the claude/marko-context-tag-review-ukuhm3 branch from 639508e to 3cf3815 Compare July 8, 2026 22:00
@DylanPiercey
DylanPiercey force-pushed the claude/marko-context-tag-review-ukuhm3 branch from 3cf3815 to 4252413 Compare July 9, 2026 00:07

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/runtime-tags/src/common/accessor.ts (1)

20-49: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

AccessorProp single-letter codes are now fully exhausted.

With ContextScopes="Z" and ContextValue="I" added, every uppercase letter A-Z is now assigned in AccessorProp (plus $/_). Any future AccessorProp addition will need a new naming scheme (multi-char code, digit, or reused casing). Not blocking, but worth flagging before the next addition hits this wall.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/runtime-tags/src/common/accessor.ts` around lines 20 - 49,
AccessorProp has exhausted the single-letter uppercase namespace, so future
additions will break if the code still assumes one-char tags. Update the
AccessorProp enum and any related encode/decode logic in accessor.ts to support
a broader naming scheme for new entries (for example multi-character or
non-uppercase codes), while preserving the existing symbols like ContextScopes,
ContextValue, and the current A-Z assignments.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/runtime-tags/src/common/accessor.ts`:
- Around line 20-49: AccessorProp has exhausted the single-letter uppercase
namespace, so future additions will break if the code still assumes one-char
tags. Update the AccessorProp enum and any related encode/decode logic in
accessor.ts to support a broader naming scheme for new entries (for example
multi-character or non-uppercase codes), while preserving the existing symbols
like ContextScopes, ContextValue, and the current A-Z assignments.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9b36e5e8-2a09-4ae0-ba79-3360d5903363

📥 Commits

Reviewing files that changed from the base of the PR and between 639508e and 4252413.

⛔ Files ignored due to path filters (106)
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/render-csr.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/render-ssr.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/render-ssr.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
📒 Files selected for processing (141)
  • .changeset/context-core-tag.md
  • agent-feedback/unclear.md
  • cspell.json
  • packages/runtime-class/test/taglib-lookup/fixtures/getTagsSorted/expected.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-basic-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-class-to-tags-import/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-dynamic-tag-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-dynamic-tag-conditional-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-nested-attr-tags-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-nested-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-tag-params-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/settings.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/tags/cart-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/tags/cart-size.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/consumer.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/counter.js
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/not-a-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-self/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-self/tags/labeled-region.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-self/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-self/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/resolve-theme.js
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/consumer.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/counter.js
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/tags/add-button.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/tags/count-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/tags/count-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-async-chained/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-async-in-child/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-conditional-child-inert/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-conditional-child-state/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-dynamic-placeholder/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-dynamic-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-dynamic/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-selector-class/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-selector-id/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-idle-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-idle-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-idle/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-input-event-handler/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-load-error/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-media/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-mixed-known-and-dynamic/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multi-trigger-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multi-trigger-visible-wins/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multi-trigger/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multiple/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-async/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-shared-reversed/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-shared/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-visible-parent/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-parent-scope-child-state/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-placeholder-script-runs-after-insert/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-placeholder/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-reorder-stream-order/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-runtime-id/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-script-runs-after-insert/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-serialize-promise/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-serialized-globals/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-shared-parent/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-sibling-binding/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-twice/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-visible-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-visible-parent-resume/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-visible/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag/sizes.json
  • packages/runtime-tags/src/__tests__/main.test.ts
  • packages/runtime-tags/src/common/accessor.debug.ts
  • packages/runtime-tags/src/common/accessor.ts
  • packages/runtime-tags/src/common/errors.ts
  • packages/runtime-tags/src/dom.ts
  • packages/runtime-tags/src/dom/context.ts
  • packages/runtime-tags/src/html.ts
  • packages/runtime-tags/src/html/context.ts
  • packages/runtime-tags/src/html/writer.ts
  • packages/runtime-tags/src/translator/core/context.ts
  • packages/runtime-tags/src/translator/core/index.ts
  • packages/runtime-tags/src/translator/util/sections.ts
  • packages/runtime-tags/src/translator/visitors/program/index.ts
  • packages/runtime-tags/src/translator/visitors/tag/custom-tag.ts
  • packages/runtime-tags/tags/context.d.marko
✅ Files skipped from review due to trivial changes (68)
  • packages/runtime-tags/src/tests/fixtures/context-error-readonly-assign/provider.marko
  • packages/runtime-tags/src/tests/fixtures-interop/interop-nested-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable/tags/theme-display.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-server-only/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-basics/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-not-provider/template.marko
  • packages/runtime-tags/src/tests/fixtures-interop/interop-tag-params-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested/sizes.json
  • cspell.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-twice/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-visible-parent-resume/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-input-event-handler/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-serialize-promise/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-nested-attr-tags-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multi-trigger/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-dynamic-placeholder/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-serialized-globals/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-runtime-id/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-dynamic-from/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-self/template.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-writable/sizes.json
  • packages/runtime-tags/tags/context.d.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-reorder-stream-order/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-unknown-from/template.marko
  • .changeset/context-core-tag.md
  • packages/runtime-tags/src/tests/fixtures/context-writable/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-basics/tags/cart-size.marko
  • packages/runtime-tags/src/tests/fixtures-interop/interop-class-to-tags-import/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-selector-id/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-visible/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-selector-class/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-conditional-child-inert/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-dynamic-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/provider.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-async-chained/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-basic-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-not-provider/not-a-provider.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-placeholder/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-idle-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-dynamic-tag-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multiple/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multi-trigger-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-dynamic-tag-conditional-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-shared-parent/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable/template.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-visible-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-provide-no-body/template.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested-visible-parent/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested-shared/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-dynamic/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-idle-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-load-error/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-conditional-child-state/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-writable/tags/count-display.marko
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/template.marko
  • agent-feedback/unclear.md
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multi-trigger-visible-wins/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-sibling-binding/sizes.json
🚧 Files skipped from review as they are similar to previous changes (48)
  • packages/runtime-tags/src/tests/fixtures/context-error-not-provider/test.ts
  • packages/runtime-class/test/taglib-lookup/fixtures/getTagsSorted/expected.json
  • packages/runtime-tags/src/tests/fixtures/context-error-unknown-from/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-writable/tags/count-provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-basics/settings.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-readonly-assign/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-two-provides/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-provide-no-body/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/provider.marko
  • packages/runtime-tags/src/html/writer.ts
  • packages/runtime-tags/src/translator/core/index.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-readonly-assign/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-server-only/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-dynamic-from/provider.marko
  • packages/runtime-tags/src/html.ts
  • packages/runtime-tags/src/tests/fixtures/context-writable/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/tags/theme-display.marko
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/consumer.marko
  • packages/runtime-tags/src/tests/fixtures/context-basics/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/template.marko
  • packages/runtime-tags/src/common/accessor.debug.ts
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/consumer.marko
  • packages/runtime-tags/src/tests/fixtures/context-writable/tags/add-button.marko
  • packages/runtime-tags/src/tests/fixtures/context-server-only/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-basics/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-dynamic-from/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-server-only/provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-two-provides/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-basics/tags/cart-provider.marko
  • packages/runtime-tags/src/common/errors.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/tags/theme-provider.marko
  • packages/runtime-tags/src/dom/context.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/tags/theme-display.marko
  • packages/runtime-tags/src/dom.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/test.ts
  • packages/runtime-tags/src/translator/util/sections.ts
  • packages/runtime-tags/src/tests/main.test.ts
  • packages/runtime-tags/src/html/context.ts
  • packages/runtime-tags/src/translator/visitors/program/index.ts
  • packages/runtime-tags/src/translator/core/context.ts

@DylanPiercey DylanPiercey changed the title feat: add &lt;context&gt; core tag feat: add <context> core tag Jul 9, 2026
@DylanPiercey
DylanPiercey force-pushed the claude/marko-context-tag-review-ukuhm3 branch 2 times, most recently from d8a5a09 to e21cc46 Compare July 9, 2026 05:08

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/runtime-tags/src/html/context.ts`:
- Around line 66-92: The _context_link call is passing arguments in the wrong
shape, which shifts debugName into the serialize slot or drops the tail argument
in optimized builds. Update the call site to pass an explicit serialize value
before debugName so _context_link(scopeId, key, registryId, serialize,
debugName) receives the intended boolean/number and preserves the mutable
context resume wiring.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b91c62f3-7120-4b4c-98c3-5343448c9881

📥 Commits

Reviewing files that changed from the base of the PR and between d8a5a09 and e21cc46.

⛔ Files ignored due to path filters (114)
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-dom.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-dom.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-html.debug.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/__snapshots__/error-compile-html.txt is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/render-csr.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/render-ssr.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/render-ssr.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-self/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/dom.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/dom.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/html.bundle.debug.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/html.bundle.js is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/render.debug.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/render.md is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/writes.debug.html is excluded by !**/__snapshots__/** and included by **
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/__snapshots__/writes.html is excluded by !**/__snapshots__/** and included by **
📒 Files selected for processing (146)
  • .changeset/context-core-tag.md
  • agent-feedback/unclear.md
  • cspell.json
  • packages/runtime-class/test/taglib-lookup/fixtures/getTagsSorted/expected.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-basic-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-class-to-tags-import/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-dynamic-tag-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-dynamic-tag-conditional-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-nested-attr-tags-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-nested-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures-interop/interop-tag-params-class-to-tags/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/settings.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/tags/cart-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/tags/cart-size.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-basics/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/consumer.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/counter.js
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-deferred-await/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-dynamic-from/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/not-a-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-not-provider/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-provide-no-body/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-readonly-assign/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-self-not-provider/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-two-provides/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-error-unknown-from/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-await/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-nested/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable-toggle/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/tags/theme-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/tags/theme-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-mutable/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-self/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-self/tags/labeled-region.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-self/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-self/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/tags/counter.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-serialized-globals/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/resolve-theme.js
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-server-only/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/consumer.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/counter.js
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-shadowing/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/tags/add-button.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/tags/count-display.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/tags/count-provider.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/template.marko
  • packages/runtime-tags/src/__tests__/fixtures/context-writable/test.ts
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-async-chained/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-async-in-child/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-conditional-child-inert/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-conditional-child-state/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-dynamic-placeholder/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-dynamic-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-dynamic/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-selector-class/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-selector-id/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-event/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-idle-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-idle-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-idle/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-input-event-handler/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-load-error/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-media/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-mixed-known-and-dynamic/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multi-trigger-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multi-trigger-visible-wins/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multi-trigger/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-multiple/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-async/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-shared-reversed/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-shared/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested-visible-parent/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-nested/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-parent-scope-child-state/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-placeholder-script-runs-after-insert/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-placeholder/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-reorder-stream-order/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-runtime-id/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-script-runs-after-insert/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-serialize-promise/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-serialized-globals/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-shared-parent/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-sibling-binding/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-twice/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-unmount-before-load/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-visible-attrs-update/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-visible-parent-resume/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag-visible/sizes.json
  • packages/runtime-tags/src/__tests__/fixtures/lazy-tag/sizes.json
  • packages/runtime-tags/src/__tests__/main.test.ts
  • packages/runtime-tags/src/common/accessor.debug.ts
  • packages/runtime-tags/src/common/accessor.ts
  • packages/runtime-tags/src/common/errors.ts
  • packages/runtime-tags/src/dom.ts
  • packages/runtime-tags/src/dom/context.ts
  • packages/runtime-tags/src/html.ts
  • packages/runtime-tags/src/html/context.ts
  • packages/runtime-tags/src/html/serializer.ts
  • packages/runtime-tags/src/html/writer.ts
  • packages/runtime-tags/src/translator/core/context.ts
  • packages/runtime-tags/src/translator/core/index.ts
  • packages/runtime-tags/src/translator/util/sections.ts
  • packages/runtime-tags/src/translator/visitors/program/index.ts
  • packages/runtime-tags/src/translator/visitors/tag/custom-tag.ts
  • packages/runtime-tags/tags/context.d.marko
✅ Files skipped from review due to trivial changes (87)
  • packages/runtime-tags/src/tests/fixtures/context-error-dynamic-from/provider.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-media/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-writable/template.marko
  • packages/runtime-class/test/taglib-lookup/fixtures/getTagsSorted/expected.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-idle/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-not-provider/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-provide-no-body/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-basic-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-basics/test.ts
  • packages/runtime-tags/src/tests/fixtures-interop/interop-nested-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-writable/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-serialize-promise/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-serialized-globals/sizes.json
  • cspell.json
  • packages/runtime-tags/src/tests/fixtures/context-self/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-serialized-globals/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-dynamic-from/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/test.ts
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-async-chained/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-selector-class/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-not-provider/not-a-provider.marko
  • packages/runtime-tags/src/tests/fixtures-interop/interop-dynamic-tag-conditional-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-basics/tags/cart-size.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-idle-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-not-provider/test.ts
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-input-event-handler/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-selector-id/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-dynamic/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-readonly-assign/provider.marko
  • .changeset/context-core-tag.md
  • packages/runtime-tags/src/tests/fixtures/context-server-only/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-writable/tags/count-display.marko
  • packages/runtime-tags/src/tests/fixtures/context-self/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-dynamic-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-class-to-tags-import/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multi-trigger/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/tags/theme-display.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-sibling-binding/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-script-runs-after-insert/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested-shared-reversed/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-self-not-provider/template.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-parent-scope-child-state/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-visible-parent-resume/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-basics/settings.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/tags/theme-display.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multi-trigger-visible-wins/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-dynamic-tag-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-error-provide-no-body/test.ts
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-reorder-stream-order/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-mixed-known-and-dynamic/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-event-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-server-only/provider.marko
  • packages/runtime-tags/src/tests/fixtures-interop/interop-nested-attr-tags-class-to-tags/sizes.json
  • packages/runtime-tags/tags/context.d.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested-visible-parent/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-idle-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag/sizes.json
  • agent-feedback/unclear.md
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-shared-parent/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable/template.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-unmount-before-load/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-visible-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-async-in-child/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested-shared/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-runtime-id/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multi-trigger-attrs-update/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable/sizes.json
  • packages/runtime-tags/src/tests/fixtures-interop/interop-tag-params-class-to-tags/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-visible/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-twice/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-serialized-globals/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-placeholder/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-multiple/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-load-error/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-nested-async/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-placeholder-script-runs-after-insert/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-basics/sizes.json
🚧 Files skipped from review as they are similar to previous changes (51)
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/tags/theme-display.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-readonly-assign/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-two-provides/template.marko
  • packages/runtime-tags/src/translator/core/index.ts
  • packages/runtime-tags/src/tests/fixtures/context-server-only/template.marko
  • packages/runtime-tags/src/dom.ts
  • packages/runtime-tags/src/tests/fixtures/context-self/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-basics/tags/cart-provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/consumer.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-self-not-provider/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-writable/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-writable/tags/add-button.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-unknown-from/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-readonly-assign/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable/tags/theme-display.marko
  • packages/runtime-tags/src/tests/fixtures/context-self/tags/labeled-region.marko
  • packages/runtime-tags/src/html.ts
  • packages/runtime-tags/src/tests/fixtures/context-server-only/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-toggle/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-error-dynamic-from/template.marko
  • packages/runtime-tags/src/common/accessor.debug.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/template.marko
  • packages/runtime-tags/src/html/writer.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-unknown-from/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-await/test.ts
  • packages/runtime-tags/src/tests/fixtures/context-error-two-provides/test.ts
  • packages/runtime-tags/src/common/errors.ts
  • packages/runtime-tags/src/tests/fixtures/context-writable/tags/count-provider.marko
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-conditional-child-inert/sizes.json
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-conditional-child-state/sizes.json
  • packages/runtime-tags/src/tests/fixtures/context-mutable/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/main.test.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/tags/theme-provider.marko
  • packages/runtime-tags/src/tests/fixtures/context-shadowing/template.marko
  • packages/runtime-tags/src/tests/fixtures/context-deferred-await/consumer.marko
  • packages/runtime-tags/src/translator/util/sections.ts
  • packages/runtime-tags/src/tests/fixtures/context-basics/template.marko
  • packages/runtime-tags/src/translator/visitors/tag/custom-tag.ts
  • packages/runtime-tags/src/tests/fixtures/context-mutable-nested/test.ts
  • packages/runtime-tags/src/tests/fixtures/lazy-tag-dynamic-placeholder/sizes.json
  • packages/runtime-tags/src/translator/visitors/program/index.ts
  • packages/runtime-tags/src/dom/context.ts
  • packages/runtime-tags/src/translator/core/context.ts

Comment on lines +66 to +92
export function _context_link(
scopeId: number,
key: string,
registryId: string,
serialize: boolean | number,
debugName?: string,
) {
const box = getContext(key) as ContextBox | undefined;
if (!box) {
if (MARKO_DEBUG) {
throw missingProviderError(debugName ?? key);
}
return undefined;
}

// The wiring serializes only when the consumer itself does.
if (serialize) {
const providerScope = _scope_with_id(box.s!) as Record<string, unknown>;
(providerScope[AccessorProp.ContextScopes] as Set<unknown>).add(
_scope(scopeId, {
[AccessorPrefix.ContextLink + key]: providerScope,
[AccessorPrefix.ContextSignal + key]: _resume({}, registryId),
}),
);
}
return box.v;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n "_context_link" -B3 -A10 packages/runtime-tags/src/translator/core/context.ts

Repository: marko-js/marko

Length of output: 699


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## callRuntime definition\n'
rg -n "function callRuntime|const callRuntime|callRuntime\(" packages/runtime-tags/src -g '*.ts' -A4 -B4

printf '\n## _context_link call sites\n'
rg -n "_context_link" packages/runtime-tags/src -g '*.ts' -A4 -B4

printf '\n## nearby context translator code\n'
sed -n '360,420p' packages/runtime-tags/src/translator/core/context.ts

Repository: marko-js/marko

Length of output: 50371


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## callRuntime definition search\n'
rg -n "callRuntime" packages/runtime-tags/src -g '*.ts' -A3 -B3

printf '\n## context runtime file around _context_link\n'
sed -n '1,140p' packages/runtime-tags/src/html/context.ts

Repository: marko-js/marko

Length of output: 50371


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## callRuntime definition search\n'
rg -n "callRuntime" packages/runtime-tags/src -g '*.ts' -A3 -B3

printf '\n## translator context code around _context_link\n'
sed -n '360,420p' packages/runtime-tags/src/translator/core/context.ts

printf '\n## runtime context function\n'
sed -n '1,140p' packages/runtime-tags/src/html/context.ts

Repository: marko-js/marko

Length of output: 50371


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## find callRuntime helper\n'
rg -n "export .*callRuntime|function callRuntime|const callRuntime" packages/runtime-tags/src packages -g '*.ts' -A6 -B6

printf '\n## search for serialize flag handling near context consumers\n'
rg -n "serialize" packages/runtime-tags/src/translator/core/context.ts packages/runtime-tags/src -g '*.ts' -A3 -B3

Repository: marko-js/marko

Length of output: 50371


🏁 Script executed:

#!/bin/bash
set -euo pipefail

sed -n '300,410p' packages/runtime-tags/src/translator/core/context.ts
printf '\n## runtime argument filtering\n'
sed -n '1,120p' packages/runtime-tags/src/translator/util/runtime.ts

Repository: marko-js/marko

Length of output: 6874


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show the debugName construction and the mutable-consumer branch.
sed -n '300,410p' packages/runtime-tags/src/translator/core/context.ts

# Show the runtime helper that drops falsy args.
sed -n '60,90p' packages/runtime-tags/src/translator/util/runtime.ts

Repository: marko-js/marko

Length of output: 4761


Pass an explicit serialize argument before debugName. _context_link expects (scopeId, key, registryId, serialize, debugName), but this call only supplies four args. That shifts debugName into serialize in non-optimized builds, and in optimized builds the falsy tail arg is dropped entirely, so mutable context resume wiring is skipped.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/runtime-tags/src/html/context.ts` around lines 66 - 92, The
_context_link call is passing arguments in the wrong shape, which shifts
debugName into the serialize slot or drops the tail argument in optimized
builds. Update the call site to pass an explicit serialize value before
debugName so _context_link(scopeId, key, registryId, serialize, debugName)
receives the intended boolean/number and preserves the mutable context resume
wiring.

@DylanPiercey
DylanPiercey force-pushed the claude/marko-context-tag-review-ukuhm3 branch 4 times, most recently from 56e276e to ac8ad3b Compare July 9, 2026 20:21
Provide a value to a tag's body content and consume it anywhere below
in the render tree via a statically resolved from= reference (tag name
or relative template path). Server-only (immutable) contexts compile to
zero client code -- enforced by an executable bundle assertion -- while
mutable providers fan changes out to consumers fine-grained, resume
subscriptions without re-rendering, resolve from client-created
branches (including providers nested in keyed loop iterations), and
support a writable := round trip.
@DylanPiercey
DylanPiercey force-pushed the claude/marko-context-tag-review-ukuhm3 branch from ac8ad3b to 9cba943 Compare July 9, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant