Skip to content

Commit 5109407

Browse files
REPORT.md: consistency pass — 14 built / 7 ported, third header-injection consumer, five bug fixes in the order-of-work
1 parent 240c3d4 commit 5109407

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

REPORT.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ want it.
2222
with zero core changes. Seven of those are ports of bundled features;
2323
remoteStorage in particular still ships always-on in core and could
2424
move out-of-tree behind the loader.
25-
- Of the ~40 `plugin`-tagged backlog issues, **13 are built here**, 6
25+
- Of the ~40 `plugin`-tagged backlog issues, **14 are built here**, 7
2626
bundled features are ported, 5 shipped upstream during this line of work,
2727
2 more are unblocked, and **6 clusters are blocked on exactly four
2828
missing seams**. The rest are core-by-nature (a finding, not a gap).
@@ -199,9 +199,11 @@ probe-port-then-boot dance for the same reason.
199199
- **Per-route Fastify options**`capability/` found `maxParamLength`
200200
(100) silently 404s long tokens in named params; wildcard routes are
201201
the workaround. Sharp when it bites.
202-
- **Response-header injection on core routes** — wanted twice
202+
- **Response-header injection on core routes** — wanted three times
203203
(notifications' `Updates-Via` discovery; micropub's
204-
`<link rel="micropub">` endpoint discovery on the user's homepage).
204+
`<link rel="micropub">` endpoint discovery on the user's homepage;
205+
oembed's per-resource discovery `<link>`, whose in-HTML form is content
206+
rewriting even a header hook couldn't do).
205207
Deliberately *not* asked for as a default-on hook: it's a bigger grant
206208
than route ownership. If ever, gate it: `capabilities: ['hooks']`.
207209

@@ -262,8 +264,9 @@ isolation the default.
262264
## The core/plugin line (#564, answered empirically)
263265

264266
**A feature is plugin-able iff it OWNS its routes; it stays core iff it
265-
MODIFIES the pipeline of routes it doesn't own.** Six bundled features
266-
ported cleanly (relay, webrtc, terminal, tunnel, notifications — plus
267+
MODIFIES the pipeline of routes it doesn't own.** Seven bundled features
268+
ported (relay, webrtc, terminal, tunnel, notifications,
269+
remoteStorage — plus
267270
`pay/` as the deliberate counter-example: 402-gating LDP routes is
268271
pipeline modification, which is the definition of core). The migration
269272
list in #564 is right for every route-owning feature; the
@@ -285,15 +288,17 @@ hooks capability.
285288

286289
If effort is scarce, this order maximizes unblocked value per unit cost:
287290

288-
1. `api.serverInfo` (trivial; tidies ~10 plugins' config and every test
291+
1. `api.serverInfo` (trivial; tidies ~16 plugins' config and every test
289292
harness),
290293
2. `api.reservePath` (small-medium; makes four existing shims
291-
self-contained and didweb *possible*),
294+
self-contained and didweb *possible* — pair it with a webfinger link
295+
registry for the shared-document case),
292296
3. `api.events.onResourceChange` (small; unlocks webhooks/WebSub/indexing
293-
and makes search/sparql/matrix faithful),
294-
4. `api.authorize` (medium; the blocking seam for proxy ACLs and
295-
capability semantics),
296-
5. the two loader bug fixes (anytime; small).
297+
and makes search/sparql/matrix/jmap faithful),
298+
4. `api.authorize` (medium; the blocking seam for proxy ACLs, capability
299+
semantics, and scheduling delivery),
300+
5. the five bug fixes (anytime; small — the non-atomic conditional write
301+
is the one with real data-loss consequences).
297302

298303
Everything else can wait until a real consumer shows up — this repo is the
299304
mechanism for finding those.

0 commit comments

Comments
 (0)