~/ RUNE DSL STUDIO
help · modifications
M
Modifications panel reference

Two pills, two questions.

Every row in the modifications panel encodes two independent signals: where the file stands relative to the last successful build, and whether the validator has accepted its current contents. Filters, badges, click actions, and the build ribbon all flow from those two axes.

Panel layout.

Header · three-row filter strip · build ribbon · rows. The help icon at top-right opens this very page.
Modifications 6
Tier
All Custom Override Java
Build
All New In build Building Stale Pinned Excluded
Validation
All Clean Validating Errors N/A
Building… 5 mods · full rebuild in flight
override A annotations.rosetta in build clean
override T event-workflow-type.rosetta building clean
custom T my-thing-type.rosetta new errors 1
java custom − MyHelper.java stale n/a
override F event-workflow-func.rosetta pinned pin@a3f8d12 clean
custom E my-thing-enum.rosetta excluded —

Full state matrix.

Tier × Build × Validation. Vendor never appears in this panel. Build pill precedence: excluded > pinned > building > in build/stale > new. stale fires when the file (or, for overrides, its vendor source) has drifted since the last successful Full Rebuild. Build & validation pills are independent except excluded shows — for validation.
new
in build
building
stale
pinned
excluded
CUSTOM
newclean
New file, validates clean
newerrors 3
New file, has syntax errors
newvalidating
Save in flight, notebook-gen running
in buildclean
In build, validates clean
in builderrors 1
In build, regressed since
buildingclean
Full Rebuild in flight; validation pill holds last-known value.
staleclean
In build, edited since, clean
staleerrors 2
Edited and broke since
pinnedpin@a3f8d12clean
Frozen at a specific sha; working copy ignored until unpinned.
excluded—
Opted out of build
OVERRIDE
newclean
Just created via Edit; clean
newerrors 1
Override has a syntax error
in buildclean
Override survived rebuild
buildingclean
Frozen for build's lifetime; validation pill held.
staleclean
Edited post-rebuild, clean
staleerrors 1
Edited post-rebuild, broke
staleclean
Vendor source drifted under the override (Phase G).
pinnedpin@a3f8d12clean
Override frozen at a sha; working copy ignored at build time.
excluded—
Override opted out
JAVA-CUSTOM
newn/a
Just authored. JDT pending Phase N.
in buildn/a
Compiled into build
buildingn/a
Snapshot at lock-acquire; javac in flight.
stalen/a
Edited since rebuild
pinnedpin@a3f8d12n/a
Java file frozen at a sha.
excluded—
Java file opted out

Click behavior.

Every interactive element. Errors pill is the headline action: jumps you to Problems for that file. Clicking a vendor file that has an override redirects to the override.
SurfaceStateAction
Row bodyanyOpen file in editor. If active editor is on this URI, focus the tab.
Tier badgeanyFilter list to that tier (toggle with chip).
Content-cat badgeanyTooltip: category name (Type / Func / Annotation / Basictypes / Enum / Desc).
Build pillnew / staleContext menu: Run Full Rebuild, Exclude from build.
Build pillin buildTooltip: "In build at <timestamp>".
Build pillbuildingNo-op while build is in flight; transitions out automatically when BuildLock releases.
Build pillpinnedRight-click: Unpin (use working copy), or Re-pin to different sha. Left-click: open file.
Build pillexcludedToggle to include (one click).
pin@<sha> chippinnedTooltip: full sha + pin timestamp. Click: reveal that commit in View History.
Vendor file openoverride existsOpens the override (writable copy that applies at build time), not the read-only vendor base. Covers nav tree, search, and graph clicks. INV-04 / DQ-01b.
Validation pillcleanTooltip: last validated timestamp.
Validation pillvalidatingNo-op (transient).
Validation pillerrorsOpen Problems panel filtered to this file; jump cursor to first error.
Validation pilln/aTooltip: "No validator for .java today — install Red Hat Java Pack (Phase N)."
Right-click rowanyMenu: Edit / Unlock, Discard, Exclude, View History.
Help icon (?)—Open this help webview.
Filter chip—Toggle. Within row: OR. Across rows: AND.
Refresh icon (↻)—Force tracker.refresh + BSS.reload + push to webview.

Vendor → override redirect. Clicking a vendor file when an override exists at rune/overrides/<sub-path> opens the override — the writable copy that actually applies at build time — not the read-only vendor base. Applies to clicks from the namespace nav tree, search results, and the graph view. The vendor file is still reachable via raw showTextDocument; a dedicated "View vendor base" toolbar affordance is planned for users who want to peek upstream.

Interim states & transitions.

Each pill is a state machine. Pending always visible for at least 250 ms (debounce floor).

Build pill

new → rebuild succeeds → in build
in build → user edits + saves → stale
stale → rebuild → in build
new → toggle exclude → excluded
excluded → toggle include → new
in build → BuildLock.acquire() → building → release() → in build
stale → pin → pinned pin@a3f8d12
pinned → unpin → stale
BUILDING is transient: enters on BuildLock.acquire(), snapshot membership frozen for the build's lifetime (mid-build saves don't remove BUILDING from a row), exits on release() back to the row's computed steady state.
PINNED freezes the row at a specific sha (.runedsl/excluded.json::pinned[path]); working-copy edits are ignored at build time until unpinned. Unpin transitions to whatever the working copy now computes to — typically new or stale.
STALE (vendor drift) — for override rows only, the pill also fires when the vendor file the override targets has changed since the override was first created (Phase G), even if the user hasn't touched the override since the last successful rebuild.

Validation pill

clean → user saves → validating → clean
clean → save with bug → validating → errors 1
errors 1 → user fixes → validating → clean
clean → build in flight → clean (suppressed)