Skip to content

Commit 6b1baef

Browse files
Record the four API seams filed upstream (core #601-604)
serverInfo #601, reservePath #602, events #603, authorize #604. REPORT.md and NEXT.md now cross-link them; next upstream step is shipping #601 end-to-end as the reference PR once the core-freeze lifts.
1 parent 9a8d65a commit 6b1baef

2 files changed

Lines changed: 20 additions & 11 deletions

File tree

NEXT.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,10 @@ narrative, issues are the actionable subset.
154154

155155
- The repo exists and is public; keep pushing to it.
156156
- Core PRs #590 / #591 are unmerged — the maintainer's call.
157-
- **The five bugs are FILED** (core issues #596#600, 2026-07-11, at the
158-
maintainer's request). The four *seam* proposals (authorize, events,
159-
reservePath, serverInfo) are still unfiled — ask before filing;
160-
REPORT.md is the draft.
157+
- **Bugs AND seams are FILED upstream** (2026-07-11): five bugs as core
158+
#596#600, four seams as core **#601 (serverInfo), #602 (reservePath),
159+
#603 (events), #604 (authorize)**. Next upstream step (Stage 3, needs
160+
the core-freeze lifted): ship `serverInfo` (#601) end-to-end as the
161+
reference PR — cheapest seam, ~16 consumers — then retrofit the plugins
162+
that hand-roll their origin. Secondary asks (api.plugins, api.isOperator)
163+
not filed yet; raise when a design discussion on the four opens.

REPORT.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@ repo; nothing is speculative. Detail lives in [NOTES.md](./NOTES.md)
77
(findings), [ISSUES.md](./ISSUES.md) (per-issue disposition), and each
88
plugin's `README.md ## Findings`.
99

10-
**The five bugs below are now filed upstream** (#596#600, 2026-07-11, at
11-
the maintainer's request). The four *seams* remain unfiled; each is
12-
drafted so it could be filed nearly verbatim if wanted.
10+
**Both the bugs and the seams are now filed upstream** (2026-07-11): the
11+
five bugs as #596#600, and the four ranked seams as **#601 (serverInfo),
12+
#602 (reservePath), #603 (events), #604 (authorize)**. The secondary asks
13+
below (`api.plugins`, `api.isOperator`, mcp.registerTool, per-route
14+
options, response-header injection, pure-utility exports) are *not* filed
15+
yet — they're lower-priority and better raised when a design discussion on
16+
the four opens.
1317

1418
## Executive summary
1519

@@ -73,8 +77,10 @@ Validated by use, not opinion:
7377

7478
Rank = how many plugins reached for the seam *without coordinating*. Each
7579
entry is written as a fileable issue: motivation, consumers, sketch, cost.
80+
**All four are now filed:** authorize → #604, events → #603,
81+
reservePath → #602, serverInfo → #601.
7682

77-
### 1. `api.authorize(request, path, mode)` — the most *blocking*
83+
### 1. `api.authorize(request, path, mode)` — the most *blocking* (#604)
7884

7985
**Ask:** let a plugin ask the host's WAC engine for a decision the
8086
*requester's credentials don't drive*.
@@ -102,7 +108,7 @@ agent id (not request) in, decision out, same engine the LDP path uses.
102108
**Cost:** medium — the WAC engine exists; this is plumbing an entry point
103109
into the loader's `api` object.
104110

105-
### 2. `api.events.onResourceChange(cb)` — every "react to writes" app
111+
### 2. `api.events.onResourceChange(cb)` — every "react to writes" app (#603)
106112

107113
**Consumers (seven, rising sharpness):** `notifications/` (a miss = late
108114
notification), `sparql/` (a miss = wrong query result), `search/` (stale
@@ -129,7 +135,7 @@ construction.
129135

130136
**Cost:** small — the event stream exists; scope it and pass it through.
131137

132-
### 3. `api.reservePath(pattern)` — what every API shim structurally needs
138+
### 3. `api.reservePath(pattern)` — what every API shim structurally needs (#602)
133139

134140
**The most-hit finding: seven+ consumers.** A plugin can *register* routes
135141
outside its prefix, but only its one `prefix` is WAC-exempt:
@@ -167,7 +173,7 @@ reporting collisions at boot.
167173
**Cost:** small-medium — generalizes the `appPaths` mechanism that already
168174
exists, moving it from operator config to plugin declaration.
169175

170-
### 4. `api.serverInfo` — the broadest, and the cheapest
176+
### 4. `api.serverInfo` — the broadest, and the cheapest (#601)
171177

172178
**~16 consumers** — every plugin that mints absolute URLs or loopbacks
173179
(the DAV family, the shims, rss, sparql, nip05, webfinger, notifications,

0 commit comments

Comments
 (0)