{% extends "scitex_ui/standalone_shell.html" %} {% load static %} {% comment %} Board v3 now extends the scitex-ui workspace shell (operator-asked, TG msg 302 / 303 — wants Alt+I element-inspector + shared chrome parity with the legacy GraphView). All inline content is repacked into the shell's three blocks: extra_css holds the page-local styles, app_content holds the kanban + BLOCKING-YOU panel + detail modal, extra_js holds the page logic. Alt+I element-inspector wires up automatically via scitex-ui's context_processor (settings.py guards the install at scitex-ui ≥0.5.0). For older scitex-ui installs the inspector degrades silently; the board itself works either way. The favicon link is injected via extra_css (the shell template has no favicon block; extra_css renders inside
). {% endcomment %} {% block extra_css %} {# 08-time-grouping.css: bucket headers TODAY/WEEK/MONTH/OLDER for Group-by-time (a2a `ff1441d7`) #} {# 09-timeline.css: Timeline layout — raster + per-task simple cards (operator TODO 2026-06-17) #} {# combobox.css (loaded below the page-CSS so its specificity sits ON TOP if needed) #} {% comment %} searchQuery.js — GitHub-style qualifier-syntax parser (project:/agent:/ status:/...). Exposes window.STX.searchQuery; the page logic below delegates `fuzzyMatch` to it whenever the input contains a recognized qualifier. Operator TG 12315/12316: photographed typing `project: paper-scitex-clew` into the search bar — they already expected GitHub-style syntax. Pure JS module, no DOM deps; unit tests at tests/scitex_todo/test__search_query.js. NB: Django's `{# … #}` syntax is single-line only — a multi-line block leaks its body into the rendered HTML. Use `{% comment %}` for any multi-line note inside a template (board v0.5.4 fix — PR #105). {% endcomment %} {% comment %} searchSuggest.js — autocomplete/Tab-completion engine, extends PR #102. Pure module; the inline script in extra_js below wires it to the #f-search input. Exposes window.STX.searchSuggest. Operator TG 12318. {% endcomment %} {% comment %} timelinePack.js — pure beeswarm sub-row packer for the Timeline raster. MUST load BEFORE timeline.js: it publishes window.STX.timelinePack, which timeline.js's IIFE captures at init so co-located markers fan out into sub-rows instead of occluding each other. No DOM; also node-testable. {% endcomment %} {% comment %} timelineGeo.js — pure time→pixel geometry (ms / barGeo / makeTicks / relTime) for the Timeline raster. MUST load BEFORE timeline.js: publishes window.STX.timelineGeo, captured by timeline.js's IIFE at init. No DOM; node-testable. Factored out so timeline.js stays under the per-file cap. {% endcomment %} {% comment %} timelineGate.js — anti-flash change-detection gate for the Timeline raster. MUST load BEFORE timeline.js: publishes window.STX.timelineGate (rasterSig + a stateful gate that skips identical 4s rebuilds and preserves .tl-scroll scroll across a real rebuild), so the raster stops flashing / jumping to top. {% endcomment %} {% comment %} timelineSelect.js — marker multi-select + copy-contents + right-click menu for the Timeline raster (operator 2026-06-26). Classic {% comment %} timelineControls.js — Timeline controls-row builder (incl. the dependency- edge legend) + the edge hover-highlight. MUST load BEFORE timeline.js: publishes window.STX.timelineControls.controlsHtml (captured by timeline.js at init, like timelineGeo) and self-wires the hover delegation on #columns (mouseover/mouseout) so it survives the raster's auto-rebuilds without timeline.js re-attaching. Pure controlsHtml/edgeLegendHtml are node-testable. Factored out so timeline.js stays under the per-file cap. {% endcomment %} {% comment %} timeline.js — the Timeline layout renderer (raster by agent/project + a rich per-task "simple" list). Classic {% comment %} FIRST-PAINT status-color CSS vars — the SINGLE source of truth for the board's per-status color layer (hook-bypass: line-limit). Server-rendered (deterministic, no FE flash) from `status_colors` (views.board_v3_page → handlers.graph._status_colors → _diagram.STATUS_STYLE). Cards, timeline, and the in-board mermaid all consume `--status-fill-
🛤 Route — how this card was handled (newest last)