3.0 KiB · text 5af55d9

Roadmap

What’s not shipped yet. Grouped by area. Priorities are my read; flip them as you like.

See PROGRESS.md for what’s done.


Now — in flight

Nothing in flight. Federation feature set is closed through slice 42 (reviews over AP shipped in slice 38, suggested-blocks in slice 38, actionable reports queue in slice 42). Remaining federation items are discretionary (RFC 9421, reputation aging).

Next — small, high impact

Nothing in flight here right now — slice 42 (actionable reports) was the last “small, high impact” item on the list. Pick the next leverage item from “Soon” or “Maintenance” below.

Soon — medium investments

Item Why Size
Resolve PR conflicts in-browser Today a conflict means “fix it locally and push” — a 3-way merge editor would close the loop medium-large
gix NIF: fill in log, commit, tree, diff_stats, merge_base, merge_tree 10-100× perf for repo-page hot paths; Cli fallback works today medium

Eventually — bigger / discretionary

Item Why Size
Native runner Lets us drop the forgejo-runner external dep. Big undertaking, low priority since the external one works very large
RFC 9421 (HTTP Messages) signature When peers upgrade from draft-cavage-12 small (mostly mechanical)
Reputation aging for new federated hosts Strictest policy until N days clean; auto-promote small-medium
act_runner (older Forgejo runner) explicit support Protocol is identical; verify against a specific binary version small
Per-job concurrency / matrix builds YAML parser supports it; runner orchestration doesn’t yet medium
Code search (Meilisearch or similar) Postgres FTS covers issues/PRs; code search is its own beast large

Explicitly declined

These are documented in the auto-memory under project-git-gud-moderation-deferred.

  • Defederation cascades — auto-blocking based on peer block lists. Becomes a coordinated harassment vector; spec doesn’t fit forge use cases.
  • Automated content classification (ML) — drift + bias + opaque appeals. Use as a signal feeding admin queue at most, never as an autonomous gate.

Maintenance / hygiene

Item Notes
Wire NIF properly for log/commit/tree Per-op fallback works today; fill in to actually get the perf win
Test fixture cleanup tmp/test/repos/ wiped on suite start; consider per-test isolation if parallelism grows
Documentation as code grows This file + PROGRESS.md; append on each slice close
mix precommit enforces warnings-as-errors Stay green; warnings sneak in fast
Operator setup doc A first-deploy README covering compose, env vars, hooks, runner registration, allowlist seeding
SSH deploy keys over embedded daemon v1 omits this; deploy keys still work via external SSH wrapper. Wire deploy-key auth into KeyApi
SSH stderr → channel stderr Currently git’s stderr lands on BEAM’s stderr (iex console). Forward via a wrapper script so the client gets remote: messages