Reference › Errors
E-CHANNEL-SHARED-MODIFIER
The @shared modifier is removed from the language.
What it means
@shared was the old marker for a realtime-synced cell. It is gone. Sync is now structural: a reactive cell declared inside a <channel> body auto-syncs by virtue of where it is declared, and no marker is required. Because the modifier no longer means anything, keeping it would imply a guarantee the compiler is not making — so it is rejected rather than ignored.
Minimal reproducer
This is the exact source compiled against the linked compiler and verified to produce E-CHANNEL-SHARED-MODIFIER.
${
@shared messages = []
}
<program title="p">
<p>chat</p>
</>
How to fix
-
Delete the keyword and declare inside the channel body.
<messages> = []inside<channel>is the canonical synced form. - Use a plain cell if it should not sync. A cell declared outside any channel body stays local. Placement is now the whole signal.
Related
Specification
Normative text: §38.4, §38.4.1, §34. Spec lives at compiler/SPEC.md .