SCAFFOLD — hand-drawn CODE-editor approximation; normative = the mark CSS values in the readout below

Mentor edit-code mark — config-diff style (violet)

Restyle the .cm-mentor-edit mark (violet fill + outline box) to the admin/infra CONFIG diff vocabulary: every touched line gets a slight violet background (a CodeMirror line decoration) and the changed characters get a violet underline (a mark decoration) — the exact shape admin uses for staged (blue) and reconciled (yellow) config diffs, recoloured to studio violet.

A — ACT / SUGGEST edit — a single-line partial change + a multi-line insert

CURRENT — fill 14% + outline box
1
# ─ generator frame — do not edit ─
2
from venact import generator
3
4
def build_query(this):
5
t = this.option("table", "orders")
6
w = this.option("code", "amount > 0")
7
sql = f"SELECT * FROM {t}"
8
if this.option("distinct", False):
9
sql = sql.replace("*", "DISTINCT *")
10
if w:
11
sql += f" WHERE {w}"
12
return sql
PROPOSED — touched-line bg + changed-char underline
1
# ─ generator frame — do not edit ─
2
from venact import generator
3
4
def build_query(this):
5
t = this.option("table", "orders")
6
w = this.option("code", "amount > 0")
7
sql = f"SELECT * FROM {t}"
8
if this.option("distinct", False):
9
sql = sql.replace("*", "DISTINCT *")
10
if w:
11
sql += f" WHERE {w}"
12
return sql

Line 6: the mentor replaced the option default — only the new chars are underlined, the whole line is tinted. Lines 8–9: a whole-block insert — the full inserted text is underlined, matching admin's behaviour for added ranges. Gray lines 1–2 are the author-region frame (.cm-infra-line, #f3f4f6) — the violet tint must stay distinguishable from it.

B — GUIDE pointer — nothing changed; the mark points at where to act

CURRENT
10
if w:
11
sql += f" WHERE {w}"
12
return sql
PROPOSED — toggle "GUIDE underline" below to compare bg-only
10
if w:
11
sql += f" WHERE {w}"
12
return sql

One violet vocabulary (per the G2 ruling): violet = "the mentor points here / touched this"; the mode disambiguates pointing from changing. The toggle below shows the alternative — GUIDE gets the line bg but no underline, reserving the underline for "chars the mentor actually changed".

C — deletion edit — the mentor removed text; there are no new chars to mark

CURRENT — a zero-length mark renders nothing: the deletion is invisible
7
sql = f"SELECT * FROM {t}"
10
if w:
PROPOSED — the touched line still gets the bg; no underline
7
sql = f"SELECT * FROM {t}"
10
if w:

e.g. the mentor deleted .limit(100) from line 7. Today this edit leaves no trace at all; with the line decoration the touched line is still tinted.

Admin reference — the borrowed vocabulary, as shipped in admin/infra CONFIG

STAGED (blue) — #eff6ff line / #2563eb underline 2px
4
retention_days: 30
RECONCILED (yellow) — #fef7dc line / #d97706 underline 2px
9
pool_size: 16

Dial it in

#eae5ff
#7c3aed
2px
yes