Repository navigation
lode v1.1.0
This release is dominated by TUI markdown-editing, a CI/badge pipeline, TUI module
restructuring, and a large body of agent-workflow hardening (recycled-worktree root-cause,
/land and /code machinery). Highlights below; every landed ticket is traceable by its ID.
Epics
Keyboard-first markdown editing in the note TextArea (lode-ev5j)
Live markdown syntax colouring and keyboard link-opening in the note editors.
- Live markdown syntax colouring in the three note TextAreas, with a plain-text fallback (lode-ev5j.2)
- Open-link-under-cursor keybinding with a
$BROWSERguard and status-line URL fallback (lode-ev5j.3) - CaptureScreen markdown colouring plus the Ctrl+N open-link binding (lode-5ill; follow-ups lode-ngk2, lode-vx60)
- Feasibility spike and the design-decision record in docs/ (lode-ev5j.1, lode-ev5j.4)
E-UX — TUI/CLI UX improvements (lode-olmi)
- Browse row-select now opens the editor; the read-only note view is retired (lode-olmi.2)
Conform the TUI to one-Screen/Widget-per-module (lode-s5kp)
Split multi-class UI modules to one top-level UI class per file.
- Split browse.py into 7 screen modules (lode-s5kp.1)
- Extract DiscardConfirmScreen (lode-s5kp.2), RelatedNoteModalScreen (lode-s5kp.3), and pure render helpers into a leaf reuse module (lode-s5kp.4)
Restructure tui/ into app/screens/widgets/services (lode-zlmz)
Group modules by kind and kill three name collisions.
- Move widgets and five services into tui/widgets/ and tui/services/ in one pass (lode-zlmz.3)
- Dissolve the browse↔edit import cycle via a leaf content-view module (lode-2zj0)
- Layout + grouping-rationale records in docs/decisions.md (lode-zlmz.1, lode-zlmz.4)
CI / build pipeline and status badges (lode-qxdn)
Push/PR build, test, and coverage with README badges.
- Build the package (wheel + sdist), run the test suite, and measure coverage on push/PR (lode-qxdn.1, lode-qxdn.2, lode-qxdn.3)
- Build, tests, and coverage badges in README (lode-qxdn.4, lode-qxdn.5, lode-qxdn.6)
- Narrow the workflow push triggers to trunk + land/** (lode-bmvy)
Features
lode verify: read-only preflight confirming a JIRA/Confluence connector is configured and reachable (lode-04lz)lode config: [REDACTED] presence indicator for env-resolved Atlassian credentials (lode-dx4r)- Consolidate save onto one stack-aware Ctrl+S (Save&pop / Save&New); drop Save&quit (lode-bsmc)
- graph_expand follows note→external edges so a matched note pulls in its attached captured externals (lode-c4cd)
Fixes
- Fix TUI markup-eating at the seam so user text renders literally everywhere (lode-3dz2, lode-ix4i, lode-7abi)
- Add the missing
lode backfill jira/confluenceguidance for links pasted while the connector was inactive (lode-bcjv)
Internal / workflow
Recycled-worktree root-cause and remediation:
- Root-cause investigation of worktree.baseRef=head, then set it to explicit "fresh" and correct the "branched from local trunk HEAD" doc claims (lode-r7ow, lode-jzbz, lode-c3b2, lode-c5by)
- Fix the guard leaking on the DIRT axis, extract the guard into a shellcheck'd/tested script, add the fresh-build-site guard, and record CC 2.1.216 as a data point (lode-nt98, lode-3v1p, lode-ivth, lode-fptp, lode-ag7j)
/land and /code agent machinery:
- /land re-gate must be foreground-only with a real exit status; isolate land-review dispatches in worktrees; drop the call-site isolation param once frontmatter isolation is confirmed (lode-b8sr, lode-g387, lode-p2vi, lode-qv5t)
- Convert land-review from a skill to an isolated agent (lode-c6ir)
- Anchor and extract /code's concurrency-cap derivation into scripts/code-concurrency-cap.sh; record why isolation stays instruction-only (lode-4k7d, lode-54mo, lode-kt6g)
Inert /code-review gate (upstream regression) and its watch-item chain:
- Documented that code-reviewer.md mandated an uninvokable /code-review, plus the recurring re-check watch items (lode-axyq, lode-cbc0, lode-ebhk, lode-01tv, lode-fr6z)
Guards and hooks:
- Fabricated-SHA / retyped-identifier guard (lode-fpmi); bd inversion-guard /bin/sh compatibility fix (lode-9gm2); de-duplicate the guard test harness and drive it through dash (lode-zlg8)
CI internals and quality gates:
- Cost/tail-risk controls on push-triggered workflows; reuse
nox -s build; single CI model-cache-key implementation; drop the package-data assertion from release.yml; correct the stale badge comment (lode-2ouz, lode-j6mj, lode-sx23, lode-zuqp, lode-nyp3) - Fail validate-mermaid.sh honestly when the docker engine is down; add a markdown link/anchor checker to the gates (lode-9i2p, lode-dkdg)
Test infrastructure:
- Fix the intermittent xdist hang at ~98% (leaked root-logger state); stop nox silently testing the wrong source tree from a worktree (lode-kmes, lode-jh80)
Docs and enforcement:
- Refresh docs/tui.md counts and modal-footer rule; test-enforce the keybindings table against actual BINDINGS; remove the retired NoteViewScreen references; cross-doc pointers for the markdown-editing record; trim the snapshot-viewer docstring (lode-72x5, lode-trym, lode-d79b, lode-s4z5, lode-o8lc, lode-eshl)