Recent changes
Current-state updates to align dev docs with the live app and workflow model.Current state (May 2026)
Use this page as a migration map for documentation orientation, not as a date-only changelog.
Current architecture baseline
- Hugo is a single Cloudflare Worker with fetch, queue, and scheduled entrypoints in
src/index.tsx. - Route registration is split by surface:
register-routes.tsxfor top-level categories andpage-routes.tsxfor grouped page domains. - Closed-fund gating is enforced by a dedicated policy middleware before handler execution on
/funds/:fundSlugand/api/funds/:fundSlug. - Document intake is asynchronous (
PARSE_QUEUE) with DLQ handling and hourly scheduled reconciliation. - Word integration is explicit via
/auth/addin-completeand/addin/word-api/*.
Architectural shifts that are still worth remembering
| Shift | Current relevance |
|---|---|
| Route surface moved from legacy module naming to grouped route registrars | Use src/routes/register-routes.tsx and src/routes/page-routes.tsx as the first map when editing pages. |
| Centralized closed-fund behavior | Closed-fund decisions now live in src/lib/fund-view-policy.ts and src/middleware/closed-fund-policy.ts. |
| Parsing/sweep reliability hardening | Queue consumer + sweep path are core behavior; avoid assumptions that parse is synchronous. |
| Auth posture as environment-aware boundary | REQUIRE_CF_ACCESS fail-closed mode in production plus review-password fallback in review deployment. |
| Template inheritance and export workflow | Template settings are now owned under fund and sponsor surfaces with sponsor-level defaults and per-fund overrides. |
Documentation orientation updates
For day-to-day work, pair this dev portal with:
Primary docs
docs/developer-map.md(routing and implementation map)docs/architecture-log.md(current architecture notes)docs/dev-portal-refresh-2026-05-08-log.md(why this refresh started)README.md(entrypoint, bind/setup, run/test commands)
What to avoid
- 2026-04-only timelines as the single source of truth
- Module groupings that no longer exist in current route registration
- Stale claims about separate API/worker shapes or deprecated route names
- Hard-coded behavior not backed by code in
src/routes/*.tsandsrc/lib/fund-view-policy.ts