You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: link the four sitemap-only orphan pages back into the site (#13780)
Three doc pages had zero inbound links from any other page's prose:
`/docs/kernel/contracts/auth-service`, `/docs/kernel/contracts/cache-service`
and `/docs/protocol/backward-compatibility`. The fourth page named in the
report, `/docs/concepts/metadata-driven`, acquired an inbound link from
`getting-started/glossary` on 2026-08-26 and is no longer orphaned.
Structural: the Contract Catalog on `kernel/contracts/index.mdx` listed all
five contracts that have their own page as plain text, so the section index
linked none of its children. Each of the five now links to its page.
Topical, so the link is one a reader has a reason to follow:
- `permissions/authentication` -> the `IAuthService` contract, where the page
already talks about a service that does not implement `handleRequest`
- `plugins/packages` -> the `ICacheService` contract, from the sentence that
names the contract the cache service sits behind
- `protocol/index` and `upgrading` -> the Backward Compatibility Policy, which
is what decides what a major may change
Face touched: body prose links only. No frontmatter, no headings, no
`meta.json` (all four pages were already listed in theirs).
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/permissions/authentication.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1276,7 +1276,7 @@ The dispatcher used to carry a **mock fallback**: with no auth service in the sl
1276
1276
1277
1277
It was never an authentication bypass — no session store backed that token, so the identity path still resolved anonymous and anonymous data access was still denied. The problem was that it told the client it had authenticated someone when it had not, while discovery simultaneously reported `auth: unavailable` and advertised no `routes.auth`. A capability the runtime does not have must not be advertised by pretending to serve it (ADR-0076 D12, ADR-0115).
1278
1278
1279
-
A service registered in the slot but not implementing the contract's `handleRequest` takes the same 501.
1279
+
A service registered in the slot but not implementing [`handleRequest` from the `IAuthService` contract](/docs/kernel/contracts/auth-service) takes the same 501.
1280
1280
1281
1281
**If you were relying on the mock** for a browser-only or MSW build: mock at the HTTP client layer, or with an MSW handler in your own test setup, which is what the console does. Load `AuthPlugin` (it needs no HTTP server — see above) and the real service answers instead.
Copy file name to clipboardExpand all lines: content/docs/plugins/packages.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -228,7 +228,7 @@ All services implement contracts from `@objectstack/spec/contracts` and are kern
228
228
229
229
### @objectstack/service-cache
230
230
231
-
**Cache Service** — In-memory caching behind the `ICacheService` contract.
231
+
**Cache Service** — In-memory caching behind the [`ICacheService` contract](/docs/kernel/contracts/cache-service).
232
232
233
233
-**Adapters**: Memory (the only working adapter). `RedisCacheAdapter` is a **skeleton** — every method throws `not yet implemented`, and `CacheServicePlugin({ adapter: 'redis' })` refuses to start. For a real distributed cache, register your own `ICacheService` via `ctx.registerService('cache', impl)`.
0 commit comments