4.7 KiB
4.7 KiB
title, date, context
| title | date | context |
|---|---|---|
| Golem15 plugin inventory and core plugin port order (Phases 17–19.1) | 2026-10-07 | /gsd-explore session on porting the remaining core plugins after Journal |
Golem15 plugin inventory and port order
A survey of every plugins/golem15/* copy under /media/nvme/dev/golem15 and /media/nvme/dev/jz/wavepath.org on 2026-10-07. "Live" counts top-level projects. LOC is PHP without tests or vendor, measured on the largest copy.
Port status
- Ported: user, translate, journal, golem, feedback. Apparatus became framework packages (
apparatus-dissolved-into-framework.md). - Not ported, covered by the framework: websockets.
modules/lighthouseand itscentrifugodriver already provide the publisher, the token route, the subscribe proxy and per-namespaceAuthorizers, which are what Wavepath's code calls (BroadcastEventJob,CentrifugoClient,AuthorizerRegistry,ChannelAuthorizerInterface). - Not ported: knobwidget and dualformfield/dualformwidget. They are about 150 LOC of form widgets each, and the admin SPA field types replace them.
Shared plugins and how much each is worth porting
| Plugin | Live projects | LOC | Decision |
|---|---|---|---|
| paymentgateway + pgstripe | 19 installed, 7 real users | 18.7k + 1.9k | Phase 18 |
| paymentgatewaysubscriptions | 5 | 5.5k | Phase 18.1 if it does not fit in 18 |
| sitemap | 21 | 1.9k | Phase 17 |
| menu | 8 | 1.0k | Phase 17 |
| faq | 16 | 0.5k | Phase 17 |
| chat | 17 installed, Wavepath is the heaviest user | 4.4k | Phase 19 |
| chatchannels | Wavepath | 2.8k | Phase 19 |
| chatbots, chatvideo, forum, herald, userfriends | Wavepath (userfriends also in PHP fonoteka; fonoteka.go has no port) | 0.6k–1.7k each | Phase 19.1 |
| oauthserver | Wavepath | 5.5k | With the Wavepath port, on wristband |
| newsletter | horoskopia | 2.3k | Backlog 999.1 |
| github, quote | 16 / 13 | 3.4k / 0.8k | Not scheduled. Quote is cheap because golem and journal are ported |
| seo, sitemanager | 6 | 4.3k / 0.9k | Not scheduled. Phase 16 replaces both with @nuxtjs/seo and app content |
| blog, bloghub, ai | 3–4 | 7.5k–9.6k | Not scheduled. This is the older blog line; journal is its successor |
Third-party plugins in many projects: winter/location is in 19, winter/blocks in 13 and winter/pages in 10. Whether paymentgateway shipping or user profiles need winter/location is an open question.
PaymentGateway facts that matter for Phase 18
- Which projects really use it: sklep.figs (shop), portal.golem15.com (invoicer), getaround.world (tourism with its own StripeConnect operator, quotify, subscriptions), quotify.pro, drzewo.net, horoskopia.eu and queststream.online. In the others it is installed only because the starter ships it.
- Drivers: Stripe is the only real driver. No PayU, Przelewy24, PayPal or Tpay code exists anywhere.
- Operator registration: operators extend the abstract
core/Operatorand push their class onto the config keygolem15.paymentgateway.operatorsfrom inside thepaymentgateway.bootedevent. In Go this becomes build-time registration through an interface. - Webhooks: one CSRF-exempt notification route,
_paymentgateway/{operator}/{mode?}/{result?}. pgstripe addsPOST /webhook/stripe/subscriptionsfor the subscriptions plugin. - State machines and events:
- Payment: Created, Sent, Accepted, Rejected, Canceled, Refunded.
- Order: 12 states and about 18 transitions, 7 of them refund paths.
- 19 Order events and 5 Payment events drive about 26 mail templates.
OrderPaidis the event consumers listen to most.
- Acceptance consumer: Horoskopia. Its
horoscopeplugin (37k LOC, 65 routes, Nuxt 4 frontendvue-horoskopia-app) requires PaymentGatewaySubscriptions and PGStripe. It usesOrder,OrderFactory,Cart/Item/Details,Settings,Payment,Subscription,SubscriptionPlanand theSubscriptionGatewaycontract.
Port order decided on 2026-10-07
- Phase 17, Blog companions: sitemap, menu and FAQ, plus a framework menu-item type registry.
- Phase 18, Payment Gateway: paymentgateway and pgstripe. Subscriptions and Stripe add-ons go into 18.1, 18.2 and so on if the Phase 18 discussion splits them out.
- Phase 19, Chat and ChatChannels.
- Phase 19.1, Chat satellites: chatbots, chatvideo, forum, herald and userfriends.
- Phase 20, Płytarium cutover.
- After Phase 20: the Horoskopia port comes first, then the Wavepath port. Neither is planned yet. This stretch is about preparing the shared plugins, not migrating apps, and a stabilization phase may come first. See the seeds for both ports.
Related
core-plugins-own-repos.md: each shared plugin gets ansm-<name>-pluginrepo../seeds/keios-port-themes-payments.md: an earlier seed that also covers paymentgateway