Work log: Textorium TUI — March 17, 2026
What shipped today
This was a high-throughput autonomous session — six issues closed and a patch release shipped, all in one sitting. The marquee feature was TOML frontmatter support (#71), which teaches textorium to read and write Hugo’s +++-delimited TOML frontmatter alongside existing YAML. The implementation handles type conversion between TOML and the internal JSON representation, preserves field order and formatting on save, and normalizes singular category into categories[] the same way the YAML path does. Six new tests cover parsing, round-trip fidelity, delimiter preservation, field ordering, and datetime handling.
After TOML landed, a scout pass identified five quality-of-life issues (#76–#80) across UX bugs, performance, and robustness. All five were prepped and executed in the same session. The UX fixes reset scroll position and metadata cursor when switching posts (#76), and sync post.date when the date field is edited in the metadata pane (#77) — both were subtle state-coherence bugs that made the TUI feel laggy or inconsistent. The performance fix (#78) introduced a cached filter with a dirty flag so get_filtered_posts() isn’t recomputed multiple times per frame. Per-post revert (#79) adds u to discard unsaved changes on the selected post, and symlink cycle protection (#80) caps WalkDir at 20 levels deep to prevent infinite hangs.
The session ended with the v1.0.1 release — the first to use the new automated Homebrew pipeline. The release workflow now has an update-homebrew job that downloads the freshly built tarballs, computes SHA256 hashes, and pushes the updated formula to pwelty/homebrew-tap automatically. No more manual hash copying. The pipeline ran end-to-end on first try: tag push → build → release → formula update → brew upgrade delivering 1.0.1 to users.
Completed
- #71 — Support TOML frontmatter (Hugo +++ delimiters) (PR #81)
- #76 — Fix: reset content scroll and metadata cursor on post selection change (PR #82)
- #77 — Fix: sync post.date after editing date field in metadata pane (PR #83)
- #78 — Perf: cache get_filtered_posts() with dirty flag (PR #84)
- #79 — Feature: per-post revert with
ukey (PR #85) - #80 — Fix: symlink cycle protection in content directory walk (PR #86)
- v1.0.1 released and published to Homebrew tap (fully automated pipeline)
Release progress
- TUI on Homebrew: 5/6 closed (1 remaining: #56 frontmatter macros, backlog)
Carry-over
- Release notes for v1.0.1 on GitHub are auto-generated PR noise — could use a human-written changelog like v1.0.0 got. Not urgent.
- #61 (save all unsaved posts) was completed in a prior session but the “TUI on Homebrew” milestone still shows 1 open issue (#56, which is backlog). Consider closing the milestone.
Risks
- The
HOMEBREW_TAP_TOKENPAT hasreposcope and no expiration was set during creation. Worth adding an expiry and rotating periodically. - Node.js 20 deprecation warnings in GitHub Actions —
actions/checkout@v4andactions/upload-artifact@v4will need updates before June 2, 2026 when Node.js 24 becomes mandatory.
Flags and watch-outs
- Test count is now 21 (up from 14 at start of session). All in
core::posts— still no TUI-specific tests. - The heredoc in the
update-homebrewworkflow step uses leading whitespace in the formula template. Verify the generatedtextorium.rbdoesn’t have unexpected indentation (it looked clean on first run). textorium --versionfrom the v1.0.0 Homebrew binary reported0.1.0because the version bump happened in the same commit as the tag. The v1.0.1 binary correctly reports1.0.1— the issue is resolved going forward since we now bump before tagging.
Next session
- Clean up the v1.0.1 GitHub release notes — replace auto-generated PR list with a structured changelog
- Consider closing the “TUI on Homebrew” milestone (#56 is backlog, not blocking)
- #56 (frontmatter macros) is the next feature if there’s appetite — needs prep
- #1 (homebrew-core submission) is in backlog — the tap works well, core submission is a nice-to-have
- Node.js 20 → 24 migration for GitHub Actions before June 2026 deadline
Why customer tools are organized wrong
This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.
Infrastructure shapes thought
The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.
Server-side dashboard architecture: Why moving data fetching off the browser changes everything
How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.
The work of being available now
A book on AI, judgment, and staying human at work.
The practice of work in progress
Practical essays on how work actually gets done.
AI agents need org charts, not pipelines
Every agent framework organizes around tasks. The agencies that actually work organize around competencies. The AI community is about to rediscover this the hard way.
The delegation problem nobody talks about
When your automated systems start finding real bugs instead of formatting issues, delegation has crossed a line most managers never see coming.
What your systems won't tell you
The most dangerous gap in any organization isn't between what you know and what you don't. It's between what your systems know and what they're willing to say.