Files
summercms/.planning/phases/18.1-payment-gateway-subscriptions/deferred-items.md

5.7 KiB

Phase 18.1 deferred items

Deferred Items

  • The localized list schema drops reorder.flat status: resolved Resolved by: plan 18.1-06, framework commit 0f09586 (ListSchema.Localize copies Flat); the RED test is TestReorderFlatCompile/the_localized_list_schema_keeps_flat (323b6d6). The cabana README and docs/backend/lists-and-filters.md already described the flag on the list schema, so no doc change was needed. Found during: plan 18.1-04 Task 2 (TestAdminPlansSmoke/flat_reorder). What: modules/cabana/list_schema.go builds the localized ListReorder with the title and the partition only (around line 618), so GET .../schema/list answers "reorder":{"title":...} without "flat":true for a flat reorder page, although the compiled ListReorder.Flat is set and documented as part of the list schema (plan 18.1-01). The reorder page itself is unaffected: the SPA reads flat from GET .../reorder (AdminReorderTree.Flat), which answers it correctly. Fix: copy Flat into the localized ListReorder and add the assertion to reorder_flat_test.go's HTTP path; a framework change for plan 18.1-06 or a quick task (out of scope for the plugin repository plan 04 commits to).
  • The layer's scripts/check-git-install.sh targets vue-journal-layer status: open Plan 18.1-09: still open. The layer's v0.2.1 release (plan 18.1-09 Task 5) has the same limit: an install check of v0.2.1 needs this script fixed first. Plan 18.1-06: left open. Neither the phase gate (scripts/check-phase18.1.sh) nor the plan's release task runs it, so the release does not depend on it. It is listed on the final push sheet: after a v0.2.0 tag, an install check of the tag needs this script fixed first (a quick task against the layer). Found during: plan 18.1-05 Task 3 (release sheet). What: ../vue-paymentgateway-layer/scripts/check-git-install.sh, shipped since v0.1.0 and run by pnpm run check:git-install <tag>, was copied from the journal layer. REPO_URL, the scratch app's dependency name, extends and the messages (12 "journal" references) point at vue-journal-layer, and it expects testing/expect-acme.txt, which the payment gateway layer does not have. Running pnpm run check:git-install v0.2.0 would check the wrong repository. Fix: for plan 18.1-06, point the script at git.golem15.com/golem15/vue-paymentgateway-layer.git and the package name vue-paymentgateway-layer, and replace the journal fixture check with a payment gateway build check. Run it after the v0.2.0 tag exists.
  • Watch: pnpm store-dir mismatch in vue-paymentgateway-layer status: resolved Resolved by: plan 18.1-06. scripts/check-phase18.1.sh layers (and --all) ran the layer suite green from a clean shell with the lockfile unchanged. The gate never installs: if pnpm aborts with ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY, the layer stage fails and prints the offline, frozen-lockfile recovery command. Found during: plan 18.1-05 Task 2 verify. What: the layer's node_modules was installed against the store /media/nvme/dev/golem15/summercms.io/summercms/.pnpm-store/v11, but pnpm 11.3.0 now resolves /media/nvme/.pnpm-store/v11. After any package.json change, pnpm test runs pnpm install first and aborts without a TTY (ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY). Plan 05 fixed the local state with pnpm install --frozen-lockfile --offline --store-dir /media/nvme/dev/golem15/summercms.io/summercms/.pnpm-store, which left the lockfile unchanged and added no package. Seen again: plan 18.1-09 Task 4, after the package.json 0.2.1 bump; the same offline, frozen-lockfile install fixed it (lockfile sha256 unchanged, no package added) and the layers stage then passed. Fix: plan 18.1-06's scripts/check-phase18.1.sh (and any other checkout) may hit the same thing. Either pin store-dir in the layer's pnpm-workspace.yaml, or run the frozen offline install before the layer stage. Close this item once the check script runs the layer suite green from a clean shell.
  • Review findings outside the gap closure status: open Source: 18.1-REVIEW.md (the gap closure, plans 18.1-07 to 18.1-09, fixed CR-01, CR-02, WR-01 to WR-04, WR-06 and WR-07 only). Recorded by: plan 18.1-09 Task 4. Open findings:
    • WR-05: the grace period counts from the already advanced period end, so a past_due subscription keeps access for about a full unpaid period plus grace_period_days. Kept PHP-identical per the user's scope for the gap closure.
    • IN-01: the per-user throttle key of the customer API never applies.
    • IN-02: the metadata_app filter lets untagged events from other applications through.
    • IN-03: the admin sync result shows the raw Stripe error text.
    • IN-04: the plans table decides "free" differently from the server.
    • IN-05: TaglistField leaves a typed separator in the input when the draft is empty.
    • IN-06: the taglist required message is not localized; customTags: false without options is accepted at boot.
    • IN-07: test-mode and live-mode Stripe customer ids share users.stripe_customer_id.
    • IN-08: repository hygiene of the new plugin module (among others, sm-paymentgateway-plugin has no tag, so consumers keep its replace). Fix: a later phase or quick tasks, one per finding.
  • Pre-existing gofmt drift in modules/cabana token files status: open Found during: plan 18.1-09 Task 3. What: gofmt -l modules/cabana lists account_tokens.go, account_tokens_test.go, token_postgres_smoke_test.go, token_routes_test.go and token_scopes_test.go. They are committed and outside this phase; go vet and the tests pass. Fix: a gofmt -w of those files in the session that owns them.