Skip to content

v0.4.0

Latest

Choose a tag to compare

@mupozg823 mupozg823 released this 06 Aug 22:51

A frozen corpus thaws, procedures become skills, and cuts land on the beat.

Upgrading

The promise from v0.3.0 is delivered: legacy workspaces promote in place.
v0.3.0 made pre-revision workspaces read-only for new evidence and deferred
in-place promotion because the obvious implementation destroyed the data it
was meant to save. va rebind (ADR-0006) now backfills a frozen workspace
into revision binding: dry-run by default, apply re-probes the source and
journals the transition. When the source media is gone the tool refuses —
a rebind without re-measurement would bind evidence to nothing, so those
workspaces stay read-only by design and va audit keeps naming the split.

Understanding → skills

  • Procedure knowledge layer. Recurring task-*/tool-* tagged steps
    compile into per-task procedure pages with timestamp anchors and an
    explicit evidence enumeration per step (visual_verified / speech_only /
    agent_estimated) — the execution-critical distinction, since transcripts
    recover procedure skeletons but not exact tokens (menu paths, values,
    commands).
  • Approval-pending skill drafts. va skillgen compiles promoted
    procedures (3+ recurring videos) into skill drafts whose execution steps
    come from visually grounded checkpoints only; speech-only steps and
    precision warnings land in a mandatory known-weaknesses section. Drafts
    stay inactive until a human approves.
  • Intent-coherence gate. A task whose sources disagree on tooling does
    not promote: tool tags form a strict-majority consensus, and a source
    sharing nothing with it blocks the draft until retagged or split —
    mixed-purpose corpora silently corrupting execution values is the failure
    this closes. va skillgen --route reports, per task, which gate still
    blocks promotion (draft / blocked-intent / needs-workspaces).
  • va audit grew matching axes: procedure maturity, evidence distribution,
    visually unconfirmed exact tokens, and image-index consistency.

Editing

  • Beat-quantized rhythm lane. va beats extracts a fixed-tempo beat
    grid (beats.json: bpm, beat times, 1s energy arc) from a music track;
    va beat-eval measures every output-timeline join of a sequence against
    the nearest beat and gates at p90 |offset| <= 40 ms by exit code. Its
    --snap output is a proposal only — applying it is a new sequence
    revision, so the decision ledger remains the only writer.
  • The skill surface now carries the montage grammar that goes with it:
    Kuleshov re-contextualizing, one-point push-ins, chapter letterboxing,
    and an isolated grade layer.

Search

  • Persistent BM25 index. .tca-search-cache.db is a
    fingerprint-incremental FTS5 inverted index (word + trigram, RRF-fused)
    with hybrid Korean recall; warm corpus queries drop from ~114 ms to
    16–23 ms. Exact tokens are indexed, a majority-coverage fallback catches
    scattered-term queries, and rank ties break understanding > screen >
    transcript.

Story Map and view

  • Story Map. A read-only projection of both ledgers onto one
    proportional timeline: checkpoint tracks with grounding cross-highlight,
    an edit lane with cut provenance back to source spans (excluded regions
    stay visible), rejected alternatives, and conditional speaker ribbons.
  • The corpus browser renders the edit ledger (cuts, rejected alternatives,
    evidence anchors), keeps human-facing Korean surfaces consistent, and
    gates serverless operation, legibility and render performance with
    regression tests.
  • va ask answers its supported count intent with a canonical evidence
    envelope projected to Korean/English human text or compact agent JSON —
    evidence is computed once, uncertainty intervals are explicit, and
    count: 0 never claims "none".

Observability and integrity

  • Frozen-corpus state is a first-class surface: audit names bound versus
    read-only workspaces instead of letting writes fail later.
  • Mixed-form videos (narration + long silent stretches) are detected at
    brief time, so a timelapse segment is not covered by one
    transcript-shaped checkpoint.
  • Wiki slugs derive from labels character-escaped and injectively — two
    labels can no longer race for one filename — and slug reassignment is
    detected by a regression gate.
  • A real-corpus smoke script joins the verification procedure, observing
    scale that synthetic fixtures cannot.

Install

git clone https://github.com/mupozg823/timecode-agent.git && cd timecode-agent
uv tool install --python 3.12 .          # add '.[diarize]' for pyannote diarization

Requires ffmpeg/ffprobe on PATH, plus yt-dlp for URL ingest. See the
README
(한국어).

Full Changelog: v0.3.0...v0.4.0