Build a reviewer app
This guide is for teams building a reviewer-facing product flow on top of AetherFS.
The goal is not to expose every API route. The goal is to ship a usable review experience quickly and cleanly.
What you are building
A basic reviewer app usually includes:
- a review queue
- a session detail page
- a tree view
- file-level comments
- approval controls
- health and history context
The minimum viable reviewer app
If you want the smallest useful product, build these screens:
1. Review queue
Show:
- session label or task
- current session status
- last activity
- whether approval is pending
- last known health
Primary route:
GET /v1/sessions
2. Session review page
Show:
- session metadata
- file tree
- file content or file-aware review surface
- annotations
- approval controls
Primary routes:
GET /v1/sessions/{sessionId}GET /v1/sessions/{sessionId}/manifestGET /v1/sessions/{sessionId}/annotations
3. Comment and resolve flow
Use:
POST /v1/sessions/{sessionId}/annotationsPATCH /v1/sessions/{sessionId}/annotations/{annotationId}
This gives you durable review notes and resolution state.
4. Approval flow
Use:
POST /v1/sessions/{sessionId}/request-approvalPOST /v1/sessions/{sessionId}/approvals/{approvalId}/grantPOST /v1/sessions/{sessionId}/approvals/{approvalId}/deny
Recommended product sequence
Build in this order:
- session list
- session detail
- manifest tree
- annotation create/list/resolve
- approval controls
- health badge
- event history
That order gets a useful product in front of users without waiting for every possible supporting feature.
What to leave out at first
Do not start with:
- source lifecycle screens
- low-level CAS extent views
- xattrs
- POSIX lock controls
Those are advanced surfaces. A reviewer app usually gets most of its value from sessions, manifests, annotations, approvals, and health.
Recommended reviewer app information architecture
Top-level review queue
This is where reviewers decide which session to open next.
Session review page
This is where real work happens.
Recommended layout:
- header: session state, health, key actions
- left pane: tree
- center: file content or diff-aware review content
- right pane: annotations and approval controls
History panel
Use the event log for durable history.
Routes:
GET /v1/sessions/{sessionId}/events
How to use health
Use health to support a reviewer, not to replace them.
Show:
- passing / failing / unknown
- passed / failed / skipped counts if present
Do not:
- auto-approve just because health is passing
How to use annotations well
Strong defaults:
- show unresolved annotations prominently
- anchor annotations to file and line
- show the annotation status clearly
- allow resolve/unresolve quickly
How to use deny feedback
Approval denial should not be the only place detailed review feedback lives.
Use:
- annotations for file-level detail
- deny feedback for the high-level blocking reason
What success looks like
A successful reviewer app lets a reviewer:
- understand the workspace
- see the relevant file tree
- leave actionable notes
- evaluate readiness
- approve or deny with confidence