Record the executed state of the ActivityPods integration at the T04 tree close

This commit is contained in:
Sylvain Duchesne
2026-10-09 21:21:27 +02:00
parent f8c2e3b809
commit 13d9f179ef
@@ -109,9 +109,9 @@ So both platforms count deposits rather than people, and the gap sits in **neith
- **The migration was delegated to a subagent** and verified independently afterwards: the five transferred files are byte-identical, the manifest merge preserved both pre-existing entries, and the gates were re-run by hand. Its one worry — that a missing local `node_modules` had made the baseline incomparable — was **unfounded** (pnpm had installed the full tree locally; 22 entries against the main checkout's 21). Its debt block was better than the specification it was given: it caught the `__FESTIPOD_BACKEND__` consequence and two branch-relative phrasings.
- **Moving base falsified three claims in the transferred code**, all corrected: the inbox the count comment points at is local here; the worked provider implementation is not in this branch's ancestry; and the `MeetingPoint` SHEX shape **does** exist here, so its binding stopped being optional (a backend that cannot carry one of the four entities cannot serve the app).
## Current gate state
## Current gate state (2026-10-09, end of the T04 tree, tip `f8c2e3b`)
`bunx tsc --noEmit` exit 0; `bun test` 32 pass / 0 fail; `contracts.py check --integrity-only` clean. `lint` is clean except one **pre-existing ERROR**: `polyfill-surface/usage_festipod.md` has **no `## Needs` section**. The e2e / `@data` / cucumber suites have **not** been run in this worktree, so their state here is unknown.
Verified by the orchestrator's own runs: `bunx tsc --noEmit` exit 0 ; `bun test` 86 pass / 0 fail ; the UI cucumber layer (`not @wip and not @humain and not @data and not @e2e and not @multibrowser and not @suspendu`) 125 scenarios / 0 failed ; smoke `@e2e-activitypods` 3/3 against the live local stack (pod provider :3000, festipod backend :3003) ; `bun run build.ts` ok ; `contracts.py check --integrity-only` clean. `lint` carries only the pre-existing ERROR (`polyfill-surface/usage_festipod.md` missing `## Needs`). The polyfill `@data`/`@e2e`/`@multibrowser` suites are suspended with the NextGraph workstream (`@suspendu` tag, code preserved, nothing deleted). The app at root now runs the ActivityPods variant: Refine providers for Pod CRUD, Solid-OIDC sign-in (picker + `/login`), Moleculer backend. Known follow-ups: app-install consent on the pod (join→collection loop + OIDC round-trip both `@suspendu` until then), `redirect_uri` alignment, cross-pod catalog provider, friction 5 (attendees member shape), refine-providers pin re-evaluation when npm publishes gitHead.
`contracts.py check` also reports, pre-existing: `polyfill-surface: provider moved: a33fb8a214 → a8d53010c2` — the pulled copy is behind the pinned ref.
@@ -121,7 +121,7 @@ So both platforms count deposits rather than people, and the gap sits in **neith
- `acl:Append` behaviour, as above.
- The router's prefix stripping, with the second backend.
- The four provider contributions.
- Wiring the seam: rewriting `FestipodDataContext` against this base, and a first `RefineBackend` (ActivityPods, being the default).
- Wiring the seam: DONE 2026-10-09 (T04 tree, tip `f8c2e3b`) — `FestipodDataContext` runs over Refine with the ActivityPods backend as the registered default; the join→collection loop is built but `@suspendu` until the app is installed on a pod (consent screen). Current state: `## Current gate state` above.
- Both usage declarations are named `usage_festipod.md`, so the bare stem is ambiguous as a wikilink — refer to either by folder path.
## Standing constraints