mirror of
https://github.com/mvschwarz/openrig-studio-apps.git
synced 2026-11-07 05:56:21 -10:00
Say why in terms a reader outside this project can use
Three comments cited internal governance by number — a ruling index and an open question id — in a public repo where neither resolves to anything. The reasoning they carried is worth keeping and is restated on its own terms: a companion whose absence lets write verbs accept work nothing performs, and a withheld verb list whose exposure is a live product question rather than a settled one. This repo has shipped that mistake before. An internal reference in public source reads as a citation and is a dead end, and it tells a stranger about our process instead of about their software.
This commit is contained in:
1 parent
d125814064
commit
e4ec67c230
3 files changed
+4
-4
No files matched your search
@@ -20,7 +20,7 @@
|
||||
"--bundle",
|
||||
"{{root:project}}"
|
||||
],
|
||||
"_note": "The renderer the write verbs enqueue for. Without it, stabilize and cut-retry ACCEPT work that nothing ever performs: the verb returns ok, a real marker lands on disk, and no cut is ever rendered. That is Ruling 16's third rung — it defeats both the verbs-answer check AND the data-changed-on-disk check, because the write genuinely happens and only the EFFECT is absent. Declared so the box starts it WITH the provider instead of someone remembering to."
|
||||
"_note": "The renderer the write verbs enqueue for. Without it, stabilize and cut-retry ACCEPT work that nothing ever performs: the verb returns ok, a real marker lands on disk, and no cut is ever rendered. That is the failure mode worth naming, because it defeats both of the obvious checks — the verbs answer AND the data really changes on disk — while the product stays inert. Declared so the box starts it WITH the provider instead of someone remembering to."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
"/api/validate-audio",
|
||||
"/api/validate-export"
|
||||
],
|
||||
"_verbs_note": "THIS LIST IS DELIBERATELY 36 OF THE 43 VERBS THIS FILE ANSWERS, AND THE GAP IS NOT AN OVERSIGHT. Withheld: /api/note, /api/note/done, /api/note/flush, /api/note/reconciled, /api/receivers, /api/reveal-file, /api/shell-mtime. The first four reach `execFile(\"rig\", [\"queue\",\"create\", ...])` — live at export-server.mjs:459, :497 and :534 — so declaring them lets a Studio surface inject work into the rig's coordination system. /api/reveal-file runs `open -R`, which is macOS Finder and meaningless on the Linux boxes we ship to. THE CHOICE IS BEHAVIOUR-PRESERVING, WHICH IS THE POINT: on a multi-provider box (host + video + cutdown, i.e. every deployed studio) these seven ALREADY do not route today, because no app declares them and studio.mjs's sole-provider fallback needs exactly one provider. Declaring them here would ENABLE something currently unreachable — a policy change smuggled inside a format migration. A migration changes where a fact is written, never what the product does. THE SCOPE QUESTION IS GENUINELY OPEN and is NOT settled by this file: OQ-5 excluded the note verbs, but it was ruled under the threat model that Ruling 15 later RETRACTED, and that retraction says rig-injection is a FEATURE on a trusted box. So the exclusion rests on a withdrawn premise and the inclusion has never been ruled on its own merits. Routed rather than decided here.",
|
||||
"_verbs_note": "THIS LIST IS DELIBERATELY 36 OF THE 43 VERBS THIS FILE ANSWERS, AND THE GAP IS NOT AN OVERSIGHT. Withheld: /api/note, /api/note/done, /api/note/flush, /api/note/reconciled, /api/receivers, /api/reveal-file, /api/shell-mtime. The first four reach `execFile(\"rig\", [\"queue\",\"create\", ...])` — live in export-server.mjs — so declaring them would let a Studio surface inject work into the agent system that runs the box. /api/reveal-file runs `open -R`, which is macOS Finder and meaningless on the Linux boxes this ships to. THE CHOICE IS BEHAVIOUR-PRESERVING, WHICH IS THE POINT: on a box running more than one provider these seven ALREADY do not route, because no app declares them and the runtime's single-provider fallback needs exactly one provider. Declaring them here would ENABLE something currently unreachable — a policy change smuggled inside a format migration. A migration changes where a fact is written, never what the product does. Whether these verbs SHOULD be exposed is a live product question and this file is not where it gets decided.",
|
||||
"supplies": [
|
||||
"ffmpeg",
|
||||
"ffprobe"
|
||||
|
||||
@@ -26,8 +26,8 @@ test("the cut lane travels with the provider that ships it", () => {
|
||||
"a declared companion whose file is absent is refused at boot, not skipped");
|
||||
// The write verbs ENQUEUE; this process PERFORMS. Without it they accept work
|
||||
// nothing ever does — the verb returns ok, a real marker lands on disk, and only
|
||||
// the product is inert. Ruling 16's third rung, which defeats both the
|
||||
// verbs-answer check and the data-changed-on-disk check.
|
||||
// the product is inert — a failure that defeats both of the obvious checks,
|
||||
// because the verbs answer AND the data really changes on disk.
|
||||
assert.ok(lane.args.includes("{{root:footage}}") && lane.args.includes("{{root:project}}"),
|
||||
"the lane needs both roots bound or it watches nothing and renders nowhere");
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user