Hive
feat(specs): MDEx body rendering, RFC statuses, and quick-mark menu
GitHub issue · Closed
Source
tuist/hive #24
Updated
Jun 24, 2026
Domains
Hive
Summary
- Rich markdown rendering. Replaces the hand-rolled markdown renderer in
HiveWeb.Markdownwith MDEx and Lumis syntax highlighting. Spec bodies now get GFM (tables, autolinks, strikethrough, tasklists),github_light-themed fenced code blocks, GitHub-style admonitions (> [!NOTE]/> [!TIP]/> [!IMPORTANT]/> [!WARNING]/> [!CAUTION]) styled as Noora-shaped callouts, and a downshifted heading pass so#in the body never collides with the page<h1>. The spec-body CSS rework swaps flex-gap for real margins so headings, paragraphs, lists, code blocks, and tables breathe. - Richer RFC status set. Renames
:accepted → :approvedand adds:pausedand:rejected. New migration rewrites existing rows inspecsandspec_revisions;Specs.list_specs/1and the status badge colors pick up the new values (rejected → destructive, paused → attention). - Quick-mark status menu. Adds a Noora dropdown to the spec show header (next to Edit) that lets editors flip status without opening the edit form. The handler routes through
Specs.update_spec/3so every status flip writes aHive.Specs.Revision, surfaced under the existing “Draft history” card with the auto-generated summary (“This revision moved the status from Approved to Paused”). - Filter URL fix. The specs index used to inject a default draft filter whenever the query params were absent, which left the URL bar bare even though a filter chip was shown and made the chip’s trash button no-op (the chip reappeared immediately). Drops the default-fill and has the sidebar link carry the draft filter explicitly so navigation and removal both round-trip through the URL.
- Seeds. Adds two new specs to
priv/repo/seeds.exsso every status is reachable from a fresh seed: apaused“Spec activity feed” spec with a rich body (Elixir + JSON code blocks, ordered/unordered lists, a GFM table,[!IMPORTANT]and[!TIP]callouts, internal links), and a shorterrejected“Auto-generate specs from forage with an LLM” spec with a[!CAUTION]callout.
Testing
mix test(283 tests, 0 failures)mix formatmix credo --strict(pre-existing issues only — no new findings introduced by this branch)mix compile --warnings-as-errorsmix assets.buildmix ecto.migrate && mix run priv/repo/seeds.exs(verified six specs land covering every status)
No GitHub comments yet.