build: regenerate editor bundle for inert wikilinks
This commit is contained in:
1 parent
92e82469f2
commit
c68a29fed8
3 files changed
+48
-10
No files matched your search
@@ -5585,3 +5585,4 @@ claim. Receipts and limitations in agents/lena/work/queue-296/BUILD.md and run-r
|
||||
2026-10-24T23:37:46Z | Sage | Row 329 (#1827, P1 pinned model proxy, Magica) LANDED 61ebf2c34, pushed 23:31:27Z 10-24. Before: refactor at 669cdf42c. After: Magica's 4 commits (94cde633e, c65fb34ee, d1f6f2b19, 61ebf2c34) cherry-picked onto 669cdf42c, diff vs the gated tree limited to drift paths, range-diff in scratch. Gate: one unchanged full landing gate in /mnt/storage/scratch/sage-r329l/wt (gate.sh 8b4978887 c8a9bcf94), started 23:08:12Z at load 14.35, GATE GREEN 23:29:14Z at load 8.67, no rerun, no test or timeout edit (mos-1634). Host note: two Codex workers cleaned T3 worktrees from about 23:14Z (mos-1639, Vikunja 632). Approvals: Dewey r2 c31643 rev 4047, Boyd r2 c31642 rev 4048. #1827 comment 31650, closed. Vikunja 237 comment 1109 (stays open for P2-P7); C4 P10 red filed as Vikunja 631. Queue: note rev 4063, done rev 4064, committed b24d917ec. DEFERRED: N2 and R2-N1 bound to row 331, N1 bound to P7. Overlap: row 284 (packages/bus/src/broker.mjs) and row 157 (scripts/mosaic-config.mjs) rebase onto 61ebf2c34 before their gates.
|
||||
2026-10-25T00:15:48Z | Sage | Row 284 (#1789, C2-05c library.get scope, Della) LANDED ce0b6ed41, pushed 00:09:52Z 10-25. Before: refactor at 9e2689dff (row 329 landing docs). After: fast-forward to Della's 7 rebased commits 78b932feb..ce0b6ed41; 8 paths, manifest-r4 de505cfd matches the landed tree. Gate: one unchanged full landing gate in /mnt/storage/scratch/sage-r284l/wt (the 329 gate.sh with D and the compose project renamed), started 23:51:19Z at load 1.62, GATE GREEN 00:09:04Z at load 5.20, no rerun, no test or timeout edit. Counts: bus 1020/0, business 283/0, cli 999 pass 1 allowed skip (FED R7), harness 177/0, library 156/0, seat 218/0, webui 458/0, every scripts/test-*.sh rc 0; queue 34 and task 87/93 skips are the standing ones. Della's whole-file runs on ce0b6ed41: library-lookups 12/0, library-tools 5/0, query 34/0. Approval: Webby round 2 delta c31654 rev 4070 (round 1 rev 4062). Overlap sweep: rows 13, 157, 309, gyro/row310 and fethry/row332-p1 clean. #1789 comment 31655, closed. No Vikunja task for the row. Queue: note rev 4071, done rev 4072, committed 7c8dc2033. DEFERRED: Webby N1 (whole-tree listing per get) bound to the next library read-path row; N2 needs nothing; N3 is this gate.
|
||||
2026-10-25T00:18:35Z | Sage | Follow-up tasks for mos-1647 item 3 (Q109): Vikunja 633 (P7 cutover, CLIProxyAPI 8.0.42 startup Grok-npm and antigravity version refreshes, from row 332 isolated runs) and 634 (row 284 Webby N1, library get lists the whole tree). DEFERRED gains the 633 entry and the 634 number for row 284 N1. Filing script and receipt in agents/sage/work/vikunja-setup/.
|
||||
2026-10-24T22:15:07Z | Herb | row 214 #1715 C2-11a focused evidence | Before: wikilinks are ordinary editor text; raw/sig retention keeps no-edit bytes, but the model has no inert node. After: inert inline wikilink atom preserves spelling through neighbouring edits; invalid attrs share HTML/entity escaping. On herb/row214-r2 base487500a16, grant sage-4286 lane B: baseline10/10 roundTrips equal (outcome A); baseline structural0/1 expected red; four whole editor files40/0, both mutants killed0/1 and restored1/0, whole webui69 files455/0 in174.189s with MOSAIC_REQUIRE_EDITOR_BUILD=1, nice19, no skips/cancellations. A mistaken preliminary7-file subset28/0 is logged and excluded from gate evidence. CSS byte-identical, final process sweep0, scratch TMPDIR removed. Filbert candidate review and every scripts/test-*.sh gate remain pending; no click, target resolution or library save change.
|
||||
@@ -4,8 +4,8 @@
|
||||
"options": "bundle, iife, es2022, browser, legal-comments inline, unminified; aliases in editor/build.mjs",
|
||||
"outputs": {
|
||||
"src/public/editor.js": {
|
||||
"sha256": "9c881b13740fae2408717ad75fa1d85bfcfe3fa8b3af0f1b3f2e706c90e80fee",
|
||||
"bytes": 758420
|
||||
"sha256": "bd167899a551c70dc07e500fcdd1853d7fb710b23c217ba5b42daf5785c38a72",
|
||||
"bytes": 759959
|
||||
},
|
||||
"src/public/editor.css": {
|
||||
"sha256": "8654ac57d1e7a561110138ecd7f701c34a074017ff8c4cd2768d8083908ee61f",
|
||||
|
||||
@@ -18176,6 +18176,9 @@
|
||||
const gate = globalThis.MosaicMarkdown?.linkTarget;
|
||||
return typeof gate === "function" ? gate(raw) : null;
|
||||
};
|
||||
var wikilinkSource = /^!?\[\[[^\[\]\r\n<>&`]+\]\]$/;
|
||||
var wikilinkAt = /!?\[\[[^\[\]\r\n<>&`]+\]\]/y;
|
||||
var isWikilink = (value) => typeof value === "string" && wikilinkSource.test(value);
|
||||
var kept = { raw: { default: null }, sig: { default: null }, lead: { default: "" } };
|
||||
var block2 = (attrs2) => ({ ...kept, ...attrs2 });
|
||||
var schema2 = new Schema({
|
||||
@@ -18192,7 +18195,7 @@
|
||||
} },
|
||||
heading: {
|
||||
attrs: block2({ level: { default: 1 } }),
|
||||
content: "(text | image)*",
|
||||
content: "(text | image | wikilink)*",
|
||||
group: "block",
|
||||
defining: true,
|
||||
parseDOM: [1, 2, 3, 4, 5, 6].map((level) => ({ tag: "h" + level, attrs: { level } })),
|
||||
@@ -18266,6 +18269,20 @@
|
||||
return ["span", { class: "md-image", "data-src": a.src, "data-alt": a.alt, "data-title": a.title }, shown];
|
||||
}
|
||||
},
|
||||
// No href, image, target resolution or click handler. C2-11b owns opening.
|
||||
wikilink: {
|
||||
inline: true,
|
||||
group: "inline",
|
||||
atom: true,
|
||||
attrs: { source: {} },
|
||||
parseDOM: [{ tag: "span.md-wikilink[data-source]", getAttrs: (dom) => {
|
||||
const source = dom.getAttribute("data-source");
|
||||
return isWikilink(source) ? { source } : false;
|
||||
} }],
|
||||
toDOM(node) {
|
||||
return ["span", { class: "md-wikilink", "data-source": node.attrs.source }, node.attrs.source];
|
||||
}
|
||||
},
|
||||
hard_break: { inline: true, group: "inline", selectable: false, parseDOM: [{ tag: "br" }], toDOM() {
|
||||
return ["br"];
|
||||
} }
|
||||
@@ -18314,6 +18331,17 @@
|
||||
});
|
||||
var splitter = lib_default("commonmark", { html: true }).enable("table").enable("strikethrough");
|
||||
var tokenizer = lib_default("commonmark", { html: false }).enable("table").enable("strikethrough");
|
||||
tokenizer.inline.ruler.before("link", "wikilink", (state, silent) => {
|
||||
wikilinkAt.lastIndex = state.pos;
|
||||
const found2 = wikilinkAt.exec(state.src);
|
||||
if (!found2 || state.pos + found2[0].length > state.posMax) return false;
|
||||
if (!silent) {
|
||||
const token = state.push("wikilink", "", 0);
|
||||
token.content = found2[0];
|
||||
}
|
||||
state.pos += found2[0].length;
|
||||
return true;
|
||||
});
|
||||
var refused = false;
|
||||
var prepared = {
|
||||
parse(text2, env) {
|
||||
@@ -18349,6 +18377,7 @@
|
||||
hr: { node: "horizontal_rule" },
|
||||
image: { node: "image", getAttrs: (tok) => ({ src: tok.attrGet("src"), title: tok.attrGet("title") || null, alt: tok.content || null }) },
|
||||
hardbreak: { node: "hard_break" },
|
||||
wikilink: { node: "wikilink", getAttrs: (tok) => ({ source: tok.content }) },
|
||||
em: { mark: "em" },
|
||||
strong: { mark: "strong" },
|
||||
link: { mark: "link", getAttrs: (tok) => ({ href: tok.attrGet("href"), title: tok.attrGet("title") || null }) },
|
||||
@@ -18360,6 +18389,15 @@
|
||||
const info = typeof value === "string" ? value.split(/[\r\n]/, 1)[0] : "";
|
||||
return info.includes("`") ? "" : info;
|
||||
};
|
||||
function escapedText(state, text2, escape2 = true) {
|
||||
const esc = state.esc;
|
||||
state.esc = (str, start) => esc.call(state, str, start).replace(/[<&]/g, "\\$&");
|
||||
try {
|
||||
state.text(text2, escape2);
|
||||
} finally {
|
||||
delete state.esc;
|
||||
}
|
||||
}
|
||||
var link2 = defaultMarkdownSerializer.marks.link;
|
||||
var serializer = new MarkdownSerializer({
|
||||
...defaultMarkdownSerializer.nodes,
|
||||
@@ -18368,13 +18406,7 @@
|
||||
defaultMarkdownSerializer.nodes.code_block(state, params === node.attrs.params ? node : node.type.create({ ...node.attrs, params }, node.content));
|
||||
},
|
||||
text(state, node) {
|
||||
const esc = state.esc;
|
||||
state.esc = (str, start) => esc.call(state, str, start).replace(/[<&]/g, "\\$&");
|
||||
try {
|
||||
state.text(node.text, !state.inAutolink);
|
||||
} finally {
|
||||
delete state.esc;
|
||||
}
|
||||
escapedText(state, node.text, !state.inAutolink);
|
||||
},
|
||||
bullet_list(state, node) {
|
||||
state.renderList(node, " ", () => "- ");
|
||||
@@ -18384,6 +18416,11 @@
|
||||
const title = oneLine(a.title);
|
||||
state.write("]/g, "\\$&") + (title ? ' "' + title.replace(/[\\"]/g, "\\$&") + '"' : "") + ")");
|
||||
},
|
||||
wikilink(state, node) {
|
||||
const source = node.attrs.source, valid = isWikilink(source);
|
||||
if (valid) state.text(source, false);
|
||||
else escapedText(state, oneLine(String(source ?? "")));
|
||||
},
|
||||
raw_block(state, node) {
|
||||
state.text(node.textContent, false);
|
||||
state.closeBlock(node);
|
||||
|
||||
Reference in new issue
Block a user