Hive Hive
Sign in

feat(specs): MDEx body rendering, RFC statuses, and quick-mark menu

GitHub issue · Closed

Metadata
Source
tuist/hive #24
Updated
Jun 24, 2026
Domains
Hive
Details

Summary

  • Rich markdown rendering. Replaces the hand-rolled markdown renderer in HiveWeb.Markdown with 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 → :approved and adds :paused and :rejected. New migration rewrites existing rows in specs and spec_revisions; Specs.list_specs/1 and 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/3 so every status flip writes a Hive.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.exs so every status is reachable from a fresh seed: a paused “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 shorter rejected “Auto-generate specs from forage with an LLM” spec with a [!CAUTION] callout.

Testing

  • mix test (283 tests, 0 failures)
  • mix format
  • mix credo --strict (pre-existing issues only — no new findings introduced by this branch)
  • mix compile --warnings-as-errors
  • mix assets.build
  • mix ecto.migrate && mix run priv/repo/seeds.exs (verified six specs land covering every status)
Comments

No GitHub comments yet.