Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions planning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,6 @@ _None._
*shipped* state, not pending work.
- **[lint-suppressions.md](lint-suppressions.md)** — audit of `noqa` /
`ty: ignore` directives and why each one stays.
- **[deferred-work.md](deferred-work.md)** — real-but-unscheduled items
raised in reviews/audits, parked with a revisit trigger (e.g. the
`OutboxRouter` DLQ/recorder forwarding gap).
31 changes: 31 additions & 0 deletions planning/deferred-work.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Deferred Work

Items raised in reviews or audits that are real but not actionable now.
Each is parked here with the reason it's deferred and the concrete trigger
that should bring it back. This is the long-tail register — not a backlog
of planned work. When an item is picked up it graduates to a spec/plan
pair in [`active/`](active/); see [CLAUDE.md](../CLAUDE.md#workflow).

As of the 2026-06-12 code + docs audit closure (PRs #61–#74), the audit
backlog is empty. The items below are the remainder: technically real,
but deliberately unscheduled pending a trigger.

## Open

### FastAPI integration

- **`OutboxRouter` doesn't forward `dlq_table` / `metrics_recorder` /
`routers`.** These three `OutboxBroker.__init__` arguments are not
exposed on `OutboxRouter.__init__`, and the router constructs the broker
internally with no handle to inject a pre-built one — so a FastAPI user
**cannot** enable the dead-letter queue or the metrics-recorder seam
through the router at all. The only path today is a standalone
`OutboxBroker`. This is documented as a limitation in
[`docs/usage/fastapi.md`](../docs/usage/fastapi.md) (audit improvement
P18, #72). Forwarding the kwargs is small in `OutboxRouter.__init__` +
the `super().__init__` passthrough, but it's a real feature with a
design surface (defaults, AsyncAPI/typing implications, whether
`routers` even makes sense through the FastAPI lifespan), not a
mechanical fix — hence a spec, not a drive-by. Revisit when a concrete
"FastAPI + DLQ" or "FastAPI + recorder seam" demand surfaces.
(`faststream_outbox/fastapi/router.py`)