Each scene now shows who is in it as they look IN THAT SCENE, with one box:
'Change how Stewart looks from this scene on'. Cast cards show every look
front, side and back. Every picture opens large. The storyboard waits until
all pictures exist. A box for the author's notes on the script as a whole,
and Revise is always on offer.
A dollar sign before a quote is a substitution token to patch_git_file, so a
price label spliced the rest of the page in after itself. trailer.html carried
33 KB of raw JavaScript after its closing tag, which rendered as garbled text
in the page body; script.html carried 65 KB, commented out. The copy above the
first closing tag was verified complete: it parses, and it defines every
function and calls every action the removed text did.
Third occurrence of this shape after cuts and the storyboard reel: a flag
meaning "work is happening" set before an in-memory thread starts, never
cleared when a deploy kills it, and a page that then hides the buttons for
ever. Anything older than 25 minutes is treated as gone.
A literal $' in replacement text is consumed as a special pattern by the
patch API, which truncated the block mid-string and swallowed the
if (unfilmed) line with it. BROWSER_TESTS.md records this exact hazard.
The price is now built by concatenating the dollar sign separately so no
$-quote sequence appears in patch text at all.
Separate from filming on purpose: a re-film decision wants the audio and
picture verdicts together, and an existing film can be checked without
paying to shoot it again.
Every clip has been transcribed and compared with its script since the first
film. Nothing looked at the picture, which is where this engine actually
fails - two identical photographs on a mantel, half a car, a person nobody
asked for. This renders the visual verdict the same way, and lists each
fault with the wording change that would have prevented it.
The page polls only while it believes something is working, and preparing
the reel was not on that list - so the progress froze at whatever the last
manual refresh had seen (5/20) while the job ran happily to completion.
Also: treat a reel job older than 15 minutes as gone, the way cuts already
are, so a worker restart cannot leave the button disabled for ever; and
start playing automatically once preparation finishes, since "Prepare and
play" promised both.
The estimate was cast x 3 + shots x 2. It counted characters who appear in
no shot, whose sheets are skipped, and knew nothing about the per-day
wardrobe sheets a multi-day story needs. On the Memory Road board that is
73 quoted against 82 drawn.
Reviewing meant scrolling to a shot, pressing play, listening, scrolling to
the next - which destroys exactly the flow a trailer is made of, so faults of
sequence were the hardest to notice and the ones we kept shipping.
This plays the whole thing: opening frame, then closing frame, while the
shot's lines are spoken, then on to the next. Stop, or jump to any shot to
leave a note. It is the trailer before it is filmed, for cents of speech
rather than dollars of video.
"Claude Opus 5 ★75" is unreadable when the model's own name ends in a digit -
it was read as a score of 5. The score now sits in its own bordered pill.
cuts_state is set before the thread starts and cleared when it finishes, so
a deploy in between left the page waiting forever on work that was no longer
running, with the retry button hidden. Fifteen minutes is longer than the
work can legitimately take.
A cut may reorder as well as drop, which changes what it is - worth saying
rather than leaving the reader to spot it in the id list.
The views table already records how far every viewer of a share page got.
Once each published cut has its own page, "which version holds people" is a
query, and this is where the answer is shown.
playCut steps one video element through the cut's clips. No render, no
upload, no cost - which is the whole reason ten proposals are worth looking
at rather than one.
A cut is an ordered list of shot ids, so previewing one costs nothing: the
page plays that cut's clips back to back. That is what makes asking for ten
proposals reasonable. Only a cut somebody chooses gets joined into a real
mp4 with its own share page, which is also what makes the watch-through
numbers comparable - one page per version.
Revising was reachable only after readers had reviewed it or the author had
left a note. Being ninety seconds over budget is a reason to revise on its
own, and the button now says how much it will cut.
The runtime in the header is the sum of the edit_seconds the writer typed,
which is a guess made from a word count. timingHtml renders what the lines
actually take when the cast speaks them, and how far over the target that
puts the trailer - which is the number a revision has to cut to.