# Coral Roadmap

**Target:** Coral v0.4.x
**Date:** 2026-03-08
**Tracks:** Unwired features, cleanup, and new functionality

---

## Phase 1: Cleanup

- [x] **1. Remove redundant `opts.no_color` field**
  - Removed `GlobalOptions.no_color` from `types.reef` and `main.reef`; color module reads flag directly
- [x] **2. Remove legacy `SourceInfo.urls` / `SourceInfo.checksums` fields**
  - Removed unused backward-compat fields from `types.reef` and dead writes from `port.reef`
- [x] **3. Clean up resolver exports**
  - Removed `resolve_alternative()`, `is_alternative_dep()`, `parse_alternatives()` from export block

---

## Phase 2: High Priority — Features users expect to work

- [x] **4. Implement `--dry-run` / `-n` flag**
  - Added dry-run support to install, remove, build, and upgrade commands
- [x] **5. Wire up `fallback_to_source` config option**
  - Install falls back to `coral build -y` when no binary package found and `fallback_to_source = true`
- [x] **6. Implement package conflict detection**
  - Install checks `conflicts` field against installed packages; `--force` overrides
- [x] **7. Implement signature verification on install**
  - When `require_signed_packages = true`, install verifies `.sig` file before proceeding
- [x] **8. Implement `compress_man` build step**
  - After build, gzips uncompressed man pages in staging dir when `compress_man = true`

---

## Phase 3: Medium Priority — Partially wired features

- [x] **9. Wire up `keep_packages` / `keep_sources` config**
  - `clean` command respects `keep_packages`/`keep_sources`; `--force` overrides protection
- [x] **10. Wire up `use_proxy` config**
  - HTTP module accepts proxy config; curl disables proxy by default, enables when `use_proxy = true`
- [x] **11. Wire up `auto_refresh` config**
  - Install and upgrade rebuild port index before execution when `auto_refresh = true`
- [x] **12. Fix `coral diff` documentation**
  - Updated GUIDE.md to reference `coral outdated` instead of `coral diff`
- [x] **13. Use specific exit codes throughout codebase**
  - Replaced generic `EXIT_ERROR()` with specific codes across all commands

---

## Completed

- [x] Package Format v2 (mtree manifest, fs.ops installer, config protection) — v0.3.0
- [x] Script model rewrite (zsh, upgrade hooks, version args) — v0.3.0
- [x] Verify command — v0.3.0
- [x] CI update to Reef 0.5.0 — v0.3.0
- [x] Auto-install build dependencies — v0.3.1
- [x] Export $PREFIX, $SYSCONFDIR, $PKG_ROOT to build scripts — v0.3.2
- [x] Recursive build-from-source dependency resolver — v0.3.3
- [x] All 13 unwired features (cleanup, high-priority, medium-priority) — v0.3.5
