2025-11-02 - 2026-11-02

Overview

0 Active Pull Requests
323 Active Issues
Excluding merges, 2 authors have pushed 730 commits to main and 730 commits to all branches. On main, 4306 files have changed and there have been 758348 additions and 177176 deletions.

54 Issues closed from 1 user

Closed #22 A preview of what a change will do is dressed as a warning 2026-11-02 01:24:39 +00:00

Closed #167 Alerts are written by hand in about twenty variants, and the design system has no part for a notice 2026-11-02 01:24:16 +00:00

Closed #186 Locks are written out at each call site, with four key conventions and no written order 2026-10-31 09:03:52 +00:00

Closed #312 A Stripe create that Stripe answered with a server error is retried for a day under a key Stripe will only answer with that error 2026-10-31 03:47:10 +00:00

Closed #196 Recording a failed drain locks the obligation before the pool, while the drain locks the pool first 2026-10-31 00:42:40 +00:00

Closed #295 A plan change and the scheduled-change sweep wait up to four minutes on each Stripe call, past the end of the request 2026-10-31 00:22:24 +00:00

Closed #284 A FedWiki status or swap request finds its site by name, so a deleted site leaves the request pending for years and a new site with that name takes its outcome 2026-10-30 22:01:09 +00:00

Closed #282 With no Stripe key, the member catalog still offers products whose prices were synced earlier, and their buttons post to a route that does not exist 2026-10-30 21:28:34 +00:00

Closed #178 The readiness panel says whether members can find a product by a rule the catalog no longer uses 2026-10-30 21:28:33 +00:00

Closed #283 With the FedWiki sync off, archived sites are never purged and a downgrade never parks sites 2026-10-30 20:03:41 +00:00

Closed #208 A request that takes longer than eight seconds gets no answer, because the server's write timeout runs out before the request timeout 2026-10-30 13:26:05 +00:00

Closed #290 A request that runs longer than eight seconds loses its answer, though the console lets it run for 32 2026-10-30 13:26:03 +00:00

Closed #247 A FedWiki site's name can keep the wrong certificate answer after a status change 2026-10-30 11:46:43 +00:00

Closed #293 The member's invoice list and invoice page show Stripe's invoice-level period, not the period the invoice pays for 2026-10-30 11:46:32 +00:00

Closed #291 A plan switch is confirmed in a panel above the plan cards, before the button that opened it 2026-10-30 10:42:54 +00:00

Closed #246 A site archived on the farm outside the console is never purged, and one archived twice can be purged at once 2026-10-30 08:51:33 +00:00

Closed #245 The retention purge can delete a site a member is restoring 2026-10-30 07:20:47 +00:00

Closed #287 The upgrade confirmation says the charge covers the rest of the period when the new tier is billed on another interval 2026-10-30 06:30:11 +00:00

Closed #271 A grant on one ladder ends a multi-ladder subscription's tiers on every ladder, and the other ladders stay empty while the subscription bills 2026-10-30 03:34:46 +00:00

Closed #272 A member can buy an add-on that has no entitlement set, pay for it every period, and receive nothing 2026-10-30 00:40:32 +00:00

Closed #277 While a grant holds a ladder that a subscription still pays for, the Products page sells a tier above the grant through Checkout, so the ladder carries two subscriptions 2026-10-30 00:01:37 +00:00

Closed #278 A member cannot move a subscription paused by an operator's grant to the granted tier or a higher one before the grant ends 2026-10-30 00:01:37 +00:00

Closed #269 A member cannot cancel a subscription while an operator's grant holds its ladder, and the Products page shows no price for it while it bills 2026-10-30 00:01:36 +00:00

Closed #270 When a grant over a paid tier ends, the subscription that pays for that tier gets it back only at its next Stripe event, not when the grant ends 2026-10-30 00:01:36 +00:00

Closed #285 A subscription reconcile's Stripe calls ignore the caller's deadline 2026-10-29 06:13:23 +00:00

Closed #153 An org type's default ladder can start on a product that confers nothing, and then restoring the default fails 2026-10-27 00:03:28 +00:00

Closed #212 A subscription's next reconcile confers its tier again over the operator's grant that replaced it, and ends the grant 2026-10-26 22:38:39 +00:00

Closed #148 A past-due subscriber is shown their ladder as unheld and offered a second subscription 2026-10-26 20:35:42 +00:00

Closed #193 The subscription reconcile changes provision status without the pool lock 2026-10-26 20:35:41 +00:00

Closed #209 member-console start exits with status 0 when the web server fails to start 2026-10-24 06:18:05 +00:00

Closed #141 The console serves nothing, not even the certificate ask, until Temporal and the identity provider are reachable 2026-10-24 06:17:57 +00:00

Closed #23 The console connects to its database as a superuser, so the privilege revokes bind nothing 2026-10-23 13:44:28 +00:00

Closed #163 The Discourse webhook receiver stores members' email addresses in the raw event log 2026-10-22 23:33:24 +00:00

Closed #231 A failed read of the sites entitlement tells the member they have reached their site limit 2026-10-22 18:40:34 +00:00

Closed #165 FedWiki's site usage is a running total that many code paths adjust; derive it instead 2026-10-22 18:39:56 +00:00

Closed #215 A default change or a reorder lists each organization it could not move with raw database error text 2026-10-20 14:03:50 +00:00

Closed #216 Adding, deleting or reordering tiers while the entitlement lock is held answers "see server logs" instead of the refusal that says to try again 2026-10-20 14:03:49 +00:00

Closed #194 Adding a tier locks pools in creation order, while other paths sort them by pool id 2026-10-20 14:03:05 +00:00

Closed #187 Plan-wide changes to ladders and defaults run inside HTTP handlers, each with its own transaction shape 2026-10-20 08:47:47 +00:00

Closed #236 The FedWiki walkthrough fails on networks whose DNS drops loopback answers 2026-10-19 15:33:24 +00:00

Closed #166 Nothing looks for dead code, duplication, tangled functions or a value written from too many places 2026-10-12 02:54:37 +00:00

Closed #213 A tier reorder that commits during a conferral records the wrong kind of tier change 2026-10-11 00:39:07 +00:00

Closed #189 The grants listing query is written twice, and only its delivery state is checked for drift 2026-10-10 12:25:36 +00:00

Closed #188 Finding which tier an organization holds on a ladder is a loop written five times 2026-10-09 16:07:18 +00:00

Closed #190 Each page's template set is assembled in its own place, and the lint and tests assemble stand-ins 2026-10-09 03:45:05 +00:00

Closed #33 The forum mapping tests pass only when another package has run first 2026-10-09 03:36:22 +00:00

Closed #175 Checkout and the plan switch do not enforce what the Products page offers 2026-10-07 12:13:05 +00:00

Closed #30 Two generated domain queries have no caller outside their own tests 2026-10-07 07:58:48 +00:00

Closed #125 Creating or deleting a wiki site holds the request open until the work finishes or a timer runs out 2026-10-06 08:48:50 +00:00

Closed #13 Members reach a payment page headed by a name the console never showed them 2026-10-02 02:23:13 +00:00

Closed #147 Outbox creates reuse Stripe idempotency keys across database lifetimes and are refused for good 2026-10-02 02:23:13 +00:00

Closed #60 Invoice numbers tell any member roughly how much business the deployment does 2026-09-28 04:32:06 +00:00

Closed #143 The screenshot harness has no Stripe subscription, so plan-change states are captured by hand 2026-09-27 06:20:02 +00:00

Closed #24 The console keeps a person signed in for days after the sign-in behind it has expired 2026-09-25 06:18:03 +00:00

323 Issues created by 1 user

Opened #1 The accessibility check never sees a page state the demo data does not produce 2026-09-21 07:18:02 +00:00

Opened #2 A budget of zero turns the abandonment ledger off in one layer and on in another 2026-09-21 07:18:02 +00:00

Opened #3 An add-on a member is meant to hold several times can only be bought once 2026-09-21 07:18:02 +00:00

Opened #5 Nothing says when the certificate endpoint stops deferring to the old answerer 2026-09-21 07:18:03 +00:00

Opened #6 A site outside the console cannot tell whether its visitor is signed in 2026-09-21 07:18:03 +00:00

Opened #4 Everything behind the operator pages is one audience, and deployment-wide settings need a second 2026-09-21 07:18:03 +00:00

Opened #7 A session ended at the identity provider stays valid in the console for up to five minutes 2026-09-21 07:18:04 +00:00

Opened #8 Who takes a database backup before migrations run, and what it has to cover 2026-09-21 07:18:04 +00:00

Opened #9 A member cannot restore their own site from a backup 2026-09-21 07:18:04 +00:00

Opened #10 Some operator lists read the database once per row 2026-09-21 07:18:04 +00:00

Opened #11 The billing lists can only be narrowed to one organization by searching for its name 2026-09-21 07:18:05 +00:00

Opened #12 A transient error reading the billing sweep schedule is read as the schedule being absent 2026-09-21 07:18:05 +00:00

Opened #13 Members reach a payment page headed by a name the console never showed them 2026-09-21 07:18:05 +00:00

Opened #14 Nothing runs the project's checks except the person who remembers to 2026-09-21 07:18:05 +00:00

Opened #15 Two rules the domains registry depends on hold only in Go, while the schema looks like it holds them 2026-09-21 07:18:06 +00:00

Opened #16 There is no commercial licence to send when someone asks to buy one 2026-09-21 07:18:06 +00:00

Opened #17 An operator cannot put a minimum term on a subscription 2026-09-21 07:18:06 +00:00

Opened #18 The member catalog does not say a plan change will wait for the end of a committed term 2026-09-21 07:18:06 +00:00

Opened #19 The organization page uses four words a reader is expected to already know 2026-09-21 07:18:07 +00:00

Opened #20 The product and organization pages were assembled part by part and never arranged 2026-09-21 07:18:07 +00:00

Opened #21 Configuration has grown into a domain of its own with no page that describes it 2026-09-21 07:18:07 +00:00

Opened #22 A preview of what a change will do is dressed as a warning 2026-09-21 07:18:08 +00:00

Opened #23 The console connects to its database as a superuser, so the privilege revokes bind nothing 2026-09-21 07:18:08 +00:00

Opened #24 The console keeps a person signed in for days after the sign-in behind it has expired 2026-09-21 07:18:08 +00:00

Opened #25 An operator cannot offer a discount code 2026-09-21 07:18:08 +00:00

Opened #26 Where a record is created, and what the control that opens the form should look like 2026-09-21 07:18:09 +00:00

Opened #27 A member cannot hold prepaid credit and have it applied to their invoices 2026-09-21 07:18:09 +00:00

Opened #28 A deployment cannot change the console's colors or add its own styles without forking 2026-09-21 07:18:09 +00:00

Opened #29 Membership roles carry permissions that nothing checks 2026-09-21 07:18:10 +00:00

Opened #30 Two generated domain queries have no caller outside their own tests 2026-09-21 07:18:10 +00:00

Opened #31 Every row of the demo activity feed says the actor is unavailable 2026-09-21 07:18:10 +00:00

Opened #32 The demo data covers whichever states someone noticed were missing 2026-09-21 07:18:10 +00:00

Opened #33 The forum mapping tests pass only when another package has run first 2026-09-21 07:18:11 +00:00

Opened #34 Choosing a domain for a site is a poor experience because the two capabilities are presented as one 2026-09-21 07:18:11 +00:00

Opened #35 The Domains page hides two sections behind toggles chosen for convenience, not for a reason 2026-09-21 07:18:11 +00:00

Opened #36 The Domains page lists every served domain and every history row without paging 2026-09-21 07:18:11 +00:00

Opened #37 The domains registry calls a domain a name and a served domain a placement, and neither word says what it is 2026-09-21 07:18:12 +00:00

Opened #38 A subscription with a minimum term and a fee policy refuses mid-term changes instead of charging the fee 2026-09-21 07:18:12 +00:00

Opened #39 When a rule belongs in the database and when in the application 2026-09-21 07:18:12 +00:00

Opened #40 What a member sees and can do when the entitlement behind their sites lapses 2026-09-21 07:18:13 +00:00

Opened #41 An entitlement set cannot be taken out of service, only hidden from the operator's pickers 2026-09-21 07:18:13 +00:00

Opened #42 The check for records left behind by a key change skips customers 2026-09-21 07:18:13 +00:00

Opened #43 Should someone who proves control of a delegated subdomain be allowed to claim it under a domain another member holds 2026-09-21 07:18:13 +00:00

Opened #44 The wiki integration reaches into the domains registry directly instead of through the integration contract 2026-09-21 07:18:14 +00:00

Opened #45 Wiki state and quota enforcement wait for the next poll instead of reacting to the change 2026-09-21 07:18:14 +00:00

Opened #46 The core database seeds a resource key that belongs to the wiki integration 2026-09-21 07:18:14 +00:00

Opened #47 The operator's list of wiki sites never shows the limit those sites count against 2026-09-21 07:18:15 +00:00

Opened #48 Only one test stack at a time can serve browser sign-in to the wiki farm 2026-09-21 07:18:15 +00:00

Opened #49 What the fourth number on the operator's landing page should be 2026-09-21 07:18:15 +00:00

Opened #50 A warning about superseding a paid plan is a single symbol with no words 2026-09-21 07:18:15 +00:00

Opened #51 Capabilities can be recorded as given to a person, and nothing can deliver them 2026-09-21 07:18:16 +00:00

Opened #52 A deployment without its own website has no front door 2026-09-21 07:18:16 +00:00

Opened #53 The console has not decided which of the newer front-end library features to use 2026-09-21 07:18:16 +00:00

Opened #54 Five identity tables store a status the database does not constrain 2026-09-21 07:18:17 +00:00

Opened #55 A deployment's own settings can only be changed by redeploying it 2026-09-21 07:18:17 +00:00

Opened #56 A deployment cannot turn off an integration it does not offer 2026-09-21 07:18:17 +00:00

Opened #57 An integration cannot supply the words that explain it on the pages it owns 2026-09-21 07:18:17 +00:00

Opened #58 Starting an integration means copying the same mechanical files by hand 2026-09-21 07:18:18 +00:00

Opened #59 The page that says what an integration needs is not the page where it is set 2026-09-21 07:18:18 +00:00

Opened #60 Invoice numbers tell any member roughly how much business the deployment does 2026-09-21 07:18:18 +00:00

Opened #61 Nothing stops a plan ladder from ending up with gaps in its order 2026-09-21 07:18:18 +00:00

Opened #62 A plan ladder cannot be taken out of service 2026-09-21 07:18:19 +00:00

Opened #63 The project lint never checks routes an integration registers 2026-09-21 07:18:19 +00:00

Opened #64 The operator search does not say what it can find, and finds less than it promises 2026-09-21 07:18:19 +00:00

Opened #65 Nothing stops a text colour that fails the contrast floor from being used again 2026-09-21 07:18:19 +00:00

Opened #66 A member cannot tell which plan their benefits come from 2026-09-21 07:18:20 +00:00

Opened #67 A member cannot download an invoice to pass on to whoever does their books 2026-09-21 07:18:20 +00:00

Opened #68 A metered limit can cover one provider or all of them, with nothing in between 2026-09-21 07:18:20 +00:00

Opened #69 Five of the HTTP middlewares have no tests of their own 2026-09-21 07:18:21 +00:00

Opened #70 The model pages do not name the smaller models their rules imply 2026-09-21 07:18:21 +00:00

Opened #71 Nothing in the console edits the rules that decide which subdomains may be carved 2026-09-21 07:18:21 +00:00

Opened #72 An operator cannot archive, purge or reassign a wiki site from the console 2026-09-21 07:18:21 +00:00

Opened #73 An operator cannot change a record's key from its page 2026-09-21 07:18:22 +00:00

Opened #74 There is no way to see who holds the operator role 2026-09-21 07:18:22 +00:00

Opened #75 An organization cannot invite another person to work on its sites 2026-09-21 07:18:23 +00:00

Opened #76 A refusal aimed at a field the form does not have shows nothing at all 2026-09-21 07:18:23 +00:00

Opened #77 An external system cannot be told when something changes in the console 2026-09-21 07:18:23 +00:00

Opened #78 The operator has no single place showing what needs attention 2026-09-21 07:18:24 +00:00

Opened #79 How the operator overview should total money when a deployment bills in several currencies 2026-09-21 07:18:24 +00:00

Opened #80 What a payments provider port looks like, and which billing code belongs behind it 2026-09-21 07:18:24 +00:00

Opened #81 A count of pools still waiting to be recomputed never says how long they have waited 2026-09-21 07:18:24 +00:00

Opened #82 A plan change affecting many organizations applies one outcome to all of them 2026-09-21 07:18:25 +00:00

Opened #83 Should buying two of something give twice the allowance, and where is that decided 2026-09-21 07:18:25 +00:00

Opened #84 The person page shows its memberships table without the box every other record page uses 2026-09-21 07:18:25 +00:00

Opened #85 A member cannot give a script access to their own account 2026-09-21 07:18:25 +00:00

Opened #86 Should a personal organization's name follow the name of the person who owns it 2026-09-21 07:18:26 +00:00

Opened #87 A domain that serves something other than a wiki site cannot be recorded as served 2026-09-21 07:18:26 +00:00

Opened #88 A product cannot be sold as a bundle covering several plan ladders at once 2026-09-21 07:18:26 +00:00

Opened #89 The plan ladders page and a ladder's own page hold their parts in no considered order 2026-09-21 07:18:27 +00:00

Opened #90 Should the two operator pages for plans be one page 2026-09-21 07:18:27 +00:00

Opened #91 On the organization page an allowance, its unit and the control that extends it do not read as one thing 2026-09-21 07:18:27 +00:00

Opened #92 Nothing defines what a suspended or archived resource pool means 2026-09-21 07:18:28 +00:00

Opened #93 A person who signs up from another site is not returned to it 2026-09-21 07:18:28 +00:00

Opened #94 A price can be stored with an amount no page is prepared to show 2026-09-21 07:18:28 +00:00

Opened #95 Every product carries a category that changes nothing 2026-09-21 07:18:28 +00:00

Opened #96 A product's page does not say how many organizations hold it 2026-09-21 07:18:29 +00:00

Opened #97 An operator cannot retire a product; the only way out of the catalog is deleting it 2026-09-21 07:18:29 +00:00

Opened #98 Creating a product means creating something else first, and the product never shows what it delivers 2026-09-21 07:18:29 +00:00

Opened #99 A product can point at a set of capabilities that does not exist 2026-09-21 07:18:29 +00:00

Opened #100 The operator cannot see which payment-provider product a catalog product is mapped to 2026-09-21 07:18:30 +00:00

Opened #101 Nothing checks that an integration can carry out the work it says it can 2026-09-21 07:18:30 +00:00

Opened #102 The readiness section calls a product unpurchasable when it was never meant to be sold 2026-09-21 07:18:30 +00:00

Opened #103 Two plan pages disagree about which end of the list the lowest tier goes 2026-09-21 07:18:31 +00:00

Opened #104 Which endpoints need a rate limit, and where the limit lives 2026-09-21 07:18:31 +00:00

Opened #105 The rule form always opens the reduction policy on Clamp, even where the provider can take usage back 2026-09-21 07:18:31 +00:00

Opened #106 A refund or a dispute at the payment provider is invisible in the console 2026-09-21 07:18:31 +00:00

Opened #107 When the proxy asks whether a domain may get a certificate, a refusal is logged without the domain 2026-09-21 07:18:32 +00:00

Opened #108 Account registration still depends on a Keycloak-only endpoint 2026-09-21 07:18:32 +00:00

Opened #109 A hosted subdomain a member gives up can be claimed by anyone the same minute 2026-09-21 07:18:32 +00:00

Opened #110 An operator cannot ask which domains and sites an organization holds 2026-09-21 07:18:32 +00:00

Opened #111 Nothing fails when a new source file ships with no licence header 2026-09-21 07:18:33 +00:00

Opened #112 The operator role is found in the identity provider's token only at hard-coded claim locations 2026-09-21 07:18:33 +00:00

Opened #113 There is no way to review which organizations a rule change recomputed 2026-09-21 07:18:33 +00:00

Opened #114 A rule in a capability set can be added and deleted but never edited 2026-09-21 07:18:34 +00:00

Opened #115 Two of the four kinds of rule an operator can write deliver nothing 2026-09-21 07:18:34 +00:00

Opened #116 A rule can be written against a capability no configured provider delivers 2026-09-21 07:18:34 +00:00

Opened #117 A grant cannot be queued to start when the current one ends 2026-09-21 07:18:35 +00:00

Opened #118 The screenshot harness cannot reach a page's interaction states 2026-09-21 07:18:35 +00:00

Opened #119 Taking screenshots resets the database and signs out whoever is using the console 2026-09-21 07:18:35 +00:00

Opened #120 Screenshots change every day because some cells count from today 2026-09-21 07:18:35 +00:00

Opened #121 Nothing says which file a new HTTP handler belongs in 2026-09-21 07:18:36 +00:00

Opened #122 A returning member lands in whichever organization comes first and cannot reach the others 2026-09-21 07:18:36 +00:00

Opened #123 Should capabilities be grantable without inventing a product to carry them 2026-09-21 07:18:36 +00:00

Opened #124 Which migration stream owns the trigger function every schema uses 2026-09-21 07:18:37 +00:00

Opened #125 Creating or deleting a wiki site holds the request open until the work finishes or a timer runs out 2026-09-21 07:18:37 +00:00

Opened #126 A member cannot host a mirror of a wiki site that lives elsewhere 2026-09-21 07:18:37 +00:00

Opened #127 What a stacking policy is for, and where an operator would choose one 2026-09-21 07:18:37 +00:00

Opened #128 Workflow schedules from an earlier configuration keep running after a redeploy 2026-09-21 07:18:37 +00:00

Opened #129 Nothing measures the storage a member uses, so no storage limit can be offered or enforced 2026-09-21 07:18:38 +00:00

Opened #130 Should the holder of a domain be able to hand a subdomain to someone else's workspace 2026-09-21 07:18:38 +00:00

Opened #131 A column named for a payment provider's event holds words that are not events 2026-09-21 07:18:38 +00:00

Opened #132 Should a date in a table be the same size as the rest of the row 2026-09-21 07:18:39 +00:00

Opened #133 Tabs, filter pills and navigation pills look alike and do three different things 2026-09-21 07:18:39 +00:00

Opened #134 The banner calls every figure test data when the console only knows today's connection 2026-09-21 07:18:39 +00:00

Opened #135 Should the plan overview grid list ladders down the side instead of across the top 2026-09-21 07:18:39 +00:00

Opened #136 The rule tying a plan change to its direction is written down and not enforced 2026-09-21 07:18:40 +00:00

Opened #137 A price stores a number of trial days that nothing honors 2026-09-21 07:18:40 +00:00

Opened #138 Nothing records which members hold voting rights 2026-09-21 07:18:40 +00:00

Opened #139 Whether a member may create a workspace has never been decided 2026-09-21 07:18:40 +00:00

Opened #140 Nothing defines what a suspended or archived workspace means 2026-09-21 07:18:41 +00:00

Opened #141 The console serves nothing, not even the certificate ask, until Temporal and the identity provider are reachable 2026-09-25 08:20:00 +00:00

Opened #142 Forms: ShowIf reads server facts the handler passes to render and parse, not a hidden field that round-trips 2026-09-27 01:55:13 +00:00

Opened #143 The screenshot harness has no Stripe subscription, so plan-change states are captured by hand 2026-09-27 05:33:53 +00:00

Opened #144 The confirm dialog for "Cancel plan" offers "Cancel" as its way out 2026-09-27 06:20:21 +00:00

Opened #145 The product flags mix up who can see a product, who can buy it and who can be given it 2026-09-27 15:15:41 +00:00

Opened #146 A payment-provider event larger than 64 KB is cut off, fails its signature check and never reaches the console 2026-09-27 23:30:59 +00:00

Opened #147 Outbox creates reuse Stripe idempotency keys across database lifetimes and are refused for good 2026-09-27 23:31:00 +00:00

Opened #148 A past-due subscriber is shown their ladder as unheld and offered a second subscription 2026-09-27 23:31:00 +00:00

Opened #149 The Stripe page's dead-letter tables print raw error chains, with the account id and request-log links 2026-09-27 23:31:01 +00:00

Opened #150 Invoice detail pages omit payments, cards and the subscription 2026-09-28 03:52:56 +00:00

Opened #151 The console has no time zone of its own: dates follow whatever zone the server process runs in 2026-09-28 04:19:17 +00:00

Opened #152 A credit note at the payment provider is invisible in the console, even when it settles an invoice 2026-09-28 04:19:17 +00:00

Opened #153 An org type's default ladder can start on a product that confers nothing, and then restoring the default fails 2026-09-28 08:23:54 +00:00

Opened #154 The default comes back as a new grant each time, while a marked grant comes back as itself: two mechanisms for one idea 2026-09-28 08:37:29 +00:00

Opened #155 A retired product can return only to the exact row that delivered it, so each new way of writing grant rows needs its own exception 2026-09-28 21:03:06 +00:00

Opened #156 In a dense form row, a label that wraps pushes its control below the others 2026-09-29 01:56:25 +00:00

Opened #157 Tier changes shows a payment-provider event's raw reason string instead of words 2026-10-01 04:43:20 +00:00

Opened #158 What the operator's grants page is for, and whether an operator should issue and manage grants from it 2026-10-01 07:06:34 +00:00

Opened #159 A member can end up paying for a tier below one they were granted, with the granted tier waiting behind it 2026-10-01 07:26:48 +00:00

Opened #160 The Sources list under a member's entitlements leaves out the plan they pay for 2026-10-02 02:12:02 +00:00

Opened #161 The Temporal authorization guide says a worker-role token can poll task queues; polling needs write 2026-10-05 02:09:58 +00:00

Opened #162 Temporal stores workflow inputs, including members' names and sign-in identifiers, in plain text 2026-10-05 02:10:05 +00:00

Opened #163 The Discourse webhook receiver stores members' email addresses in the raw event log 2026-10-05 03:38:38 +00:00

Opened #164 What an unlimited numeric limit is, and how it is stored and delivered 2026-10-05 23:38:39 +00:00

Opened #165 FedWiki's site usage is a running total that many code paths adjust; derive it instead 2026-10-06 05:04:10 +00:00

Opened #166 Nothing looks for dead code, duplication, tangled functions or a value written from too many places 2026-10-06 05:14:30 +00:00

Opened #167 Alerts are written by hand in about twenty variants, and the design system has no part for a notice 2026-10-06 07:58:02 +00:00

Opened #168 The console has no notifications 2026-10-06 08:12:34 +00:00

Opened #169 The console has rules for what copy to cut, but no guide for writing the copy that stays 2026-10-06 08:51:17 +00:00

Opened #170 Every list of records is a table, and at mobile width tables scroll sideways 2026-10-06 08:51:18 +00:00

Opened #171 An application outside the console cannot connect to it: there is no published protocol 2026-10-06 18:11:39 +00:00

Opened #172 Nothing decides who enforces a numeric limit, or what happens when a connected application loses access 2026-10-06 18:11:48 +00:00

Opened #173 A connected application cannot show anything inside the console 2026-10-06 18:11:55 +00:00

Opened #174 FedWiki and Discourse are built into the console instead of connecting through the published contract 2026-10-06 18:12:03 +00:00

Opened #175 Checkout and the plan switch do not enforce what the Products page offers 2026-10-06 21:11:37 +00:00

Opened #176 No operator page shows a subscription's scheduled change, so a deferred cancellation reads as renewing 2026-10-06 21:24:41 +00:00

Opened #177 A scheduled change is marked applied before Stripe carries it out, and is never retried 2026-10-06 21:24:47 +00:00

Opened #178 The readiness panel says whether members can find a product by a rule the catalog no longer uses 2026-10-06 21:24:51 +00:00

Opened #179 A tier change keeps its cause and the operator's note in one text column, and nothing ties together the rows one act writes 2026-10-06 21:24:56 +00:00

Opened #180 Ending a plan's delivery runs the same four steps in three places, with the pool locked at different points 2026-10-06 21:25:01 +00:00

Opened #181 A batch of rule changes has no record of its own, so its first change stands in for it 2026-10-06 21:25:05 +00:00

Opened #182 Nothing says which billing account is an organization's own, and three paths take the oldest 2026-10-06 21:25:09 +00:00

Opened #183 Whether a catalog object or customer reached Stripe is recorded in two places 2026-10-06 21:25:13 +00:00

Opened #184 A swap of the active site is stored as two single-site requests held together by naming conventions 2026-10-06 21:25:18 +00:00

Opened #185 A form declaration can hold settings its layout family never reads 2026-10-06 21:25:23 +00:00

Opened #186 Locks are written out at each call site, with four key conventions and no written order 2026-10-06 21:25:45 +00:00

Opened #187 Plan-wide changes to ladders and defaults run inside HTTP handlers, each with its own transaction shape 2026-10-06 21:25:45 +00:00

Opened #188 Finding which tier an organization holds on a ladder is a loop written five times 2026-10-06 21:25:46 +00:00

Opened #189 The grants listing query is written twice, and only its delivery state is checked for drift 2026-10-06 21:25:46 +00:00

Opened #190 Each page's template set is assembled in its own place, and the lint and tests assemble stand-ins 2026-10-06 21:25:47 +00:00

Opened #191 Tests build their data and check their pages by hand, with one copy of each helper per package 2026-10-06 21:25:47 +00:00

Opened #192 Tests share one database and global settings, so packages must run one at a time 2026-10-06 21:25:47 +00:00

Opened #193 The subscription reconcile changes provision status without the pool lock 2026-10-07 08:00:28 +00:00

Opened #194 Adding a tier locks pools in creation order, while other paths sort them by pool id 2026-10-07 08:00:29 +00:00

Opened #195 A refused plan switch answers 200 and replaces the preview with the plans 2026-10-07 12:13:05 +00:00

Opened #196 Recording a failed drain locks the obligation before the pool, while the drain locks the pool first 2026-10-09 03:50:02 +00:00

Opened #197 A failed read of an organization's plan position is shown to the member as holding nothing 2026-10-09 04:59:55 +00:00

Opened #198 A scheduled cancellation keeps its "Cancels on" badge but loses its end date and Keep plan when the plan's price cannot be read 2026-10-09 16:01:19 +00:00

Opened #199 The Products page offers a plan switch on a subscription the switch cannot change 2026-10-09 16:01:30 +00:00

Opened #200 The current plan's card shows the price of its subscription's first item, which can belong to another product 2026-10-09 16:01:37 +00:00

Opened #201 Plan cards make a limit's singular by cutting a trailing "s", and drop their limit lines without an error when the rules cannot be read 2026-10-09 16:02:10 +00:00

Opened #202 A member's plan change does not see a grant issued while it runs, and replaces that grant when it finishes 2026-10-09 16:02:10 +00:00

Opened #203 Checkout reads the price's Stripe mapping a second time and repeats checks the offer decision has already passed 2026-10-09 16:02:11 +00:00

Opened #204 Checkout answers a failed read of the organization's billing accounts as "no billing account found" with 400 2026-10-09 16:02:11 +00:00

Opened #205 Checkout and four other handlers take a field from the URL when the posted form leaves it out 2026-10-09 16:02:12 +00:00

Opened #206 A failed read of the plan ladders replaces a member's whole entitlements panel with a plans error 2026-10-09 16:03:02 +00:00

Opened #207 Operator pages show a failed read as an empty or settled answer instead of an error 2026-10-09 16:03:03 +00:00

Opened #208 A request that takes longer than eight seconds gets no answer, because the server's write timeout runs out before the request timeout 2026-10-09 16:03:03 +00:00

Opened #209 member-console start exits with status 0 when the web server fails to start 2026-10-09 16:03:03 +00:00

Opened #210 An organization with more than 200 members reads as 200 on its page, and its latest members are picked from the first 200 by name 2026-10-09 16:03:04 +00:00

Opened #211 Past tier changes are named by the ladder's current order, so a reorder or a tier removal rewrites what they say 2026-10-09 16:03:04 +00:00

Opened #212 A subscription's next reconcile confers its tier again over the operator's grant that replaced it, and ends the grant 2026-10-09 16:08:24 +00:00

Opened #213 A tier reorder that commits during a conferral records the wrong kind of tier change 2026-10-10 23:03:45 +00:00

Opened #214 A default ladder's last tier can be removed while organizations hold it, leaving the ladder empty 2026-10-10 23:59:46 +00:00

Opened #215 A default change or a reorder lists each organization it could not move with raw database error text 2026-10-10 23:59:46 +00:00

Opened #216 Adding, deleting or reordering tiers while the entitlement lock is held answers "see server logs" instead of the refusal that says to try again 2026-10-10 23:59:47 +00:00

Opened #217 A rule change on a large entitlement set is shown as not applied when its first recomputation fails on one pool, although it was applied 2026-10-10 23:59:47 +00:00

Opened #218 Conferring a product on two ladders writes its tier-change rows in no fixed order, so a golden test fails now and then 2026-10-12 02:10:18 +00:00

Opened #219 A member's downgrade is lost when a reconcile releases the old schedule the downgrade has just reused 2026-10-12 02:10:30 +00:00

Opened #220 The copy rules are checked two different ways, and some sentences a person reads are checked by neither 2026-10-12 02:54:15 +00:00

Opened #221 Some HTTP handlers still open their own transaction or run hand-written SQL 2026-10-16 01:51:32 +00:00

Opened #222 A create or a settings save sometimes lands without its success toast, so two walkthroughs fail now and then 2026-10-16 01:52:36 +00:00

Opened #223 Five tests check less than their names or comments say 2026-10-16 01:52:37 +00:00

Opened #224 The test kit opens whatever database TEST_DATABASE_URL names, the application's included 2026-10-16 01:52:38 +00:00

Opened #225 List queries can end their sort on a column two rows share, and nothing checks the last sort key 2026-10-16 01:56:23 +00:00

Opened #226 Nothing catches a subtest that calls a fixture built on its parent test's t 2026-10-16 01:56:24 +00:00

Opened #227 No tool in the repository checks that a change keeps every test name and result 2026-10-16 01:56:26 +00:00

Opened #228 Should a generated-mutant report run over the packages whose tests need no database? 2026-10-16 01:56:27 +00:00

Opened #229 Removing a request whose workflow never started takes no instance lock, so a repeat of it can be answered as a conflict 2026-10-16 02:59:48 +00:00

Opened #230 A verified custom domain offers to create a site when the console cannot read whether one is already there 2026-10-16 02:59:50 +00:00

Opened #231 A failed read of the sites entitlement tells the member they have reached their site limit 2026-10-16 02:59:51 +00:00

Opened #232 Sign-in is refused when one ID token claim has an unexpected type, even a claim the console never reads 2026-10-16 02:59:53 +00:00

Opened #233 A downgrade on a subscription with two items removes the other item at Stripe 2026-10-16 02:59:54 +00:00

Opened #234 A request with the wrong method is told the page does not exist, never 405 2026-10-16 02:59:56 +00:00

Opened #235 Should pure functions get property-based tests beside their examples? 2026-10-16 04:59:29 +00:00

Opened #236 The FedWiki walkthrough fails on networks whose DNS drops loopback answers 2026-10-17 16:18:26 +00:00

Opened #237 A large tier removal or add is refused; the tier should retire and drain instead 2026-10-18 06:16:21 +00:00

Opened #238 A change to an org type's default plan or a ladder's tier order cannot carry a note saying why 2026-10-18 06:34:10 +00:00

Opened #239 Operator errors point to the server logs but give no reference to find the line by 2026-10-18 19:02:07 +00:00

Opened #240 Creating a workspace for an organization without a default pool creates one with no plan 2026-10-18 19:36:17 +00:00

Opened #241 The create-workspace route answers any signed-in member while its control is hidden 2026-10-18 19:40:01 +00:00

Opened #242 migrate down undoes the last integration's newest migration, not the most recently applied one 2026-10-20 07:06:14 +00:00

Opened #243 The default change, the reorder and the tier removal each rebuild a refused preview in their own code 2026-10-20 18:39:48 +00:00

Opened #244 The repository has no code of conduct 2026-10-20 23:14:18 +00:00

Opened #245 The retention purge can delete a site a member is restoring 2026-10-22 03:43:19 +00:00

Opened #246 A site archived on the farm outside the console is never purged, and one archived twice can be purged at once 2026-10-22 06:46:29 +00:00

Opened #247 A FedWiki site's name can keep the wrong certificate answer after a status change 2026-10-22 06:46:30 +00:00

Opened #248 A create reconcile gives up after three database errors and leaves the site pending until the next boot 2026-10-22 06:46:30 +00:00

Opened #249 Inbound webhook events are kept forever 2026-10-22 22:21:35 +00:00

Opened #250 Error messages put members' email addresses and forum usernames into the console's logs 2026-10-22 23:04:08 +00:00

Opened #251 The env setting only picks the log format, and the image sets an ENV the console never reads 2026-10-23 07:09:49 +00:00

Opened #252 Objects in each schema belong to the user that runs migrations, not to the schema's owner role 2026-10-23 07:13:25 +00:00

Opened #253 Nobody is told when the console serves without Temporal, its identity provider or its session store 2026-10-24 05:00:56 +00:00

Opened #254 Decide whether the domains system should live inside the console 2026-10-24 05:12:33 +00:00

Opened #255 A past-due subscription loses its plan at once, with no grace period 2026-10-24 06:21:34 +00:00

Opened #256 A member cannot change the card their subscription charges 2026-10-24 06:21:46 +00:00

Opened #257 A Checkout page opened before a plan was bought can still buy that plan's ladder a second time 2026-10-24 06:24:39 +00:00

Opened #258 An add-on whose payment is due shows no state and is offered again 2026-10-24 06:24:50 +00:00

Opened #259 Package tests run every query as the cluster's superuser, so a privilege the runtime role lacks shows only in the running console 2026-10-24 06:51:53 +00:00

Opened #260 member-console start handles no stop signal, so a stop cuts in-flight requests and never stops the Temporal worker 2026-10-24 06:51:53 +00:00

Opened #261 A grant with an end date stays active past it when its expiration workflow fails to start or fails 2026-10-24 06:51:54 +00:00

Opened #262 A session the console cannot decode answers the error page on every request until it expires 2026-10-24 06:52:45 +00:00

Opened #263 Screen captures of the Stripe integration page depend on whether the console's Stripe reads finished before the capture 2026-10-24 06:52:45 +00:00

Opened #264 The console's database pool keeps a search_path from db-dsn, while the documentation and the spec say it uses core,public 2026-10-24 06:52:46 +00:00

Opened #265 No test runs the Temporal activity or the boot step that keep webhook event partitions ahead of need 2026-10-24 06:52:46 +00:00

Opened #266 An interrupted test run leaves its roles in the shared test cluster, and test/reset-test-db.sh drops none 2026-10-24 06:52:46 +00:00

Opened #267 A Stripe webhook event is dispatched again when its final status update fails 2026-10-24 06:52:47 +00:00

Opened #268 The integration guide's configuration section omits ConfigKey's Type, Enum and Positive fields 2026-10-24 06:52:47 +00:00

Opened #269 A member cannot cancel a subscription while an operator's grant holds its ladder, and the Products page shows no price for it while it bills 2026-10-26 20:58:21 +00:00

Opened #270 When a grant over a paid tier ends, the subscription that pays for that tier gets it back only at its next Stripe event, not when the grant ends 2026-10-26 20:58:22 +00:00

Opened #271 A grant on one ladder ends a multi-ladder subscription's tiers on every ladder, and the other ladders stay empty while the subscription bills 2026-10-26 20:58:22 +00:00

Opened #272 A member can buy an add-on that has no entitlement set, pay for it every period, and receive nothing 2026-10-26 20:58:23 +00:00

Opened #273 After a product's entitlement set is cleared, extending a grant of it fails with "Failed to save the grant" and no reason 2026-10-26 20:58:23 +00:00

Opened #274 Screen captures print the pinned times in the time zone the console process runs in, so a capture from another zone differs from the baseline 2026-10-26 20:58:24 +00:00

Opened #275 Keep plan pressed just after a downgrade takes effect answers nothing and records the downgrade as withdrawn 2026-10-26 20:58:24 +00:00

Opened #276 The Stripe statuses that suspend a plan are listed again in the operator's billing card and the test kit instead of read from the reconcile 2026-10-26 20:58:25 +00:00

Opened #277 While a grant holds a ladder that a subscription still pays for, the Products page sells a tier above the grant through Checkout, so the ladder carries two subscriptions 2026-10-26 20:58:36 +00:00

Opened #278 A member cannot move a subscription paused by an operator's grant to the granted tier or a higher one before the grant ends 2026-10-27 06:24:32 +00:00

Opened #279 A member cannot arrange for a subscription paused by an operator's grant to continue on the granted tier or a higher one when the grant ends 2026-10-27 06:24:44 +00:00

Opened #280 A grant over a paid tier uses up time the member paid for, or gives part of a period away, depending on where the subscription's renewal date falls 2026-10-27 16:26:31 +00:00

Opened #281 An operator cannot issue a grant that waits under the organization's own plan and takes over when that plan stops covering it 2026-10-28 01:12:23 +00:00

Opened #282 With no Stripe key, the member catalog still offers products whose prices were synced earlier, and their buttons post to a route that does not exist 2026-10-28 02:44:21 +00:00

Opened #283 With the FedWiki sync off, archived sites are never purged and a downgrade never parks sites 2026-10-28 02:44:22 +00:00

Opened #284 A FedWiki status or swap request finds its site by name, so a deleted site leaves the request pending for years and a new site with that name takes its outcome 2026-10-28 02:44:22 +00:00

Opened #285 A subscription reconcile's Stripe calls ignore the caller's deadline 2026-10-29 05:03:49 +00:00

Opened #286 A member whose default payment method is SEPA Direct Debit cannot upgrade their plan 2026-10-29 05:42:48 +00:00

Opened #287 The upgrade confirmation says the charge covers the rest of the period when the new tier is billed on another interval 2026-10-29 05:42:48 +00:00

Opened #288 A tier priced in another currency is offered as a switch that always fails 2026-10-29 05:42:49 +00:00

Opened #289 The current plan's card states no cost when the organization type's default plan holds it 2026-10-29 06:55:41 +00:00

Opened #290 A request that runs longer than eight seconds loses its answer, though the console lets it run for 32 2026-10-29 07:34:03 +00:00

Opened #291 A plan switch is confirmed in a panel above the plan cards, before the button that opened it 2026-10-29 22:24:04 +00:00

Opened #292 An upgrade confirmed across a renewal answers "Try again in a moment" instead of showing fresh figures 2026-10-30 00:30:57 +00:00

Opened #293 The member's invoice list and invoice page show Stripe's invoice-level period, not the period the invoice pays for 2026-10-30 00:40:03 +00:00

Opened #294 A wiki name whose site was never created can keep passing the certificate check until the console restarts 2026-10-30 19:47:45 +00:00

Opened #295 A plan change and the scheduled-change sweep wait up to four minutes on each Stripe call, past the end of the request 2026-10-30 19:47:46 +00:00

Opened #296 A request that runs out of time tells the member to try again, though its work may still finish 2026-10-30 19:47:46 +00:00

Opened #297 The FedWiki and Discourse operator pages say a scheduled run never happened when Temporal could not be asked 2026-10-30 19:47:47 +00:00

Opened #298 A failed read of a FedWiki organization's last active-site change is treated as no change, on the sites card and in the swap 2026-10-30 19:47:47 +00:00

Opened #299 With no Stripe key, the Products and Billing pages and the billing sweeps still act on Stripe objects an earlier key made 2026-10-30 22:44:40 +00:00

Opened #300 The billing pages and the setup checklist decide "Stripe is configured" from the integration settings, while the member pages and Checkout decide it from the key's mode 2026-10-30 22:44:40 +00:00

Opened #301 FedWiki maintenance can change or delete a newer site that reuses a deleted site's name 2026-10-30 22:44:41 +00:00

Opened #302 After a plan change confirmed in the dialog on the Products page, keyboard focus falls back to the top of the page 2026-10-30 22:51:33 +00:00

Opened #303 A plan change the console refuses on purpose is logged at ERROR, like a fault 2026-10-30 22:51:33 +00:00

Opened #304 Syncing a new product to Stripe logs an ERROR when its price waits a moment for the product 2026-10-30 22:51:34 +00:00

Opened #305 A FedWiki maintenance run whose farm sync failed is shown as Completed 2026-10-30 22:51:34 +00:00

Opened #306 Retrying failed recomputations locks their rows in no set order, so it can deadlock with a drain on the same rows 2026-10-31 00:27:01 +00:00

Opened #307 A downgrade Stripe holds is not shown when the console never recorded it 2026-10-31 00:29:59 +00:00

Opened #308 A move deferred to a commitment's end survives an upgrade the console learns of from Stripe 2026-10-31 00:29:59 +00:00

Opened #309 A plan change made and recorded is answered as failed when the reconcile after it fails 2026-10-31 00:30:00 +00:00

Opened #310 A FedWiki row action or API delete answers a failed database read as "Site not found" 2026-10-31 01:01:36 +00:00

Opened #311 The readiness verdict names a missing price "Active price" while it names every other gap in lowercase 2026-10-31 01:01:36 +00:00

Opened #312 A Stripe create that Stripe answered with a server error is retried for a day under a key Stripe will only answer with that error 2026-10-31 01:01:36 +00:00

Opened #313 The Stripe environment check's reads outlive the attempt Temporal gave up, so two attempts run at once 2026-10-31 01:01:37 +00:00

Opened #314 A product or price that Stripe makes after answering the console with a server error is never recorded from Stripe's event 2026-10-31 03:37:01 +00:00

Opened #315 A checkout can create a second Stripe customer for an organization when Stripe answers after the request has ended 2026-10-31 03:37:01 +00:00

Opened #316 An operator's Retry of a failed Stripe sync can be undone by the dead-letter write it answered 2026-10-31 06:23:53 +00:00

Opened #317 The Stripe specs describe an outbox path, a helper and a query the console no longer has 2026-10-31 06:23:53 +00:00

Opened #318 The checkout answers three failures as bare text beside the plan 2026-11-02 06:23:25 +00:00

Opened #319 FedWiki site actions answer a failure with 200 2026-11-02 06:23:26 +00:00

Opened #320 The FedWiki sites card repeats its notices to a screen reader every three seconds 2026-11-02 06:23:26 +00:00

Opened #321 The invoice detail and a domain's DNS records still render a back link 2026-11-02 07:19:09 +00:00

Opened #322 The sites card's header splits the disabled Create site button from its reason 2026-11-02 07:40:31 +00:00

Opened #323 A notice lists its own rows, each with its words and one link 2026-11-02 07:44:12 +00:00