Skip to content

lode v1.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 01:33
· 1692 commits to trunk since this release

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 $BROWSER guard 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/confluence guidance 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)