fix: launch hotfixes — Neon adapter + Location backfill + global ReportIssue + viewport#6
Open
abdout wants to merge 3 commits into
Open
fix: launch hotfixes — Neon adapter + Location backfill + global ReportIssue + viewport#6abdout wants to merge 3 commits into
abdout wants to merge 3 commits into
Conversation
…d-start The pg adapter holds long-lived TCP connections that Neon drops when its serverless compute scales to zero, causing the next query to fail with "Server has closed the connection". The neon serverless adapter speaks HTTPS+WS and wakes the compute on demand. Detect Neon URLs and switch automatically when DATABASE_URL_ADAPTER is unset. Pairs with a backfill of the missing Location.createdAt/updatedAt columns applied via Neon MCP — schema.prisma listed them but production never received the ALTER TABLE, so every Listing.findMany() failed once the nested location include resolved. Refs #4
…apes, restructure meta
- Replace pathname.startsWith("/ar") heuristic with the existing
reportIssue.* dictionary slice via useDictionary(). A single locale
source keeps the widget consistent with every other localized surface.
- Use literal Arabic glyphs in fallback handling instead of \u escape
sequences (carry-over from the previous edit; Arabic is now sourced
from the dictionary anyway).
- Pull browser/viewport/direction into a nested `meta` object on the
server action's input shape so the body fields are always emitted in
the same canonical order — needed by the kun report-agent parser.
- Self-bootstrap the `report` GitHub label on 422 with color #d93f0b so
the action works in any repo without manual seeding.
Refs #5
…link Mounts <ReportIssue variant="icon"/> as a fixed-position floating button in the locale-root layout so every one of the 117 locale-prefixed routes exposes the report widget. Previously only two footer components carried it, leaving auth, hosting, dashboard, transport, and admin surfaces with no path to file a bug. Adds the explicit Next 16 viewport export (width/initialScale/themeColor) that mobile Safari needs to render at the correct DPR and to honour prefers-color-scheme for the address bar. Moves the bilingual skip-link literal at layout.tsx:74 to common.skipToContent in both dictionaries — the only remaining inline ternary in the locale-root layout. Refs #5
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Apr 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase A of the production-readiness push (plan:
kun/.claude/plans/resume-the-development-in-abstract-rossum.md). Three atomic commits:*.neon.tech. Previously the pg adapter held a long-lived TCP connection that Neon dropped on serverless suspend; the next query then 500'd withServer has closed the connection. Pairs with a manual backfill (via Neon MCP) of the missingLocation.createdAt/Location.updatedAtcolumns —schema.prismalisted them but theadd_timestamps_lease_payment_location_tenantmigration had only ever applied the Lease/Payment/Tenant ALTERs to prod, so everyListing.findManyfailed once the nestedlocationinclude resolved.pathname.startsWith("/ar")heuristic for the existingdictionary.reportIssue.*slice viauseDictionary(). Restructure the server-action input shape soviewport/direction/browserlive under ametaobject (canonical body order matches the kun report-agent parser). Self-bootstrap thereportGitHub label on 422.<ReportIssue variant="icon"/>as a fixed-position floating button in[lang]/layout.tsxso all 117 locale-prefixed routes expose the widget (previously only two footer mounts). Add Next 16viewportexport (width / initialScale / themeColor honouringprefers-color-scheme). Move the bilingual skip-link literal tocommon.skipToContentin both dictionaries.Verification
Local:
pnpm typecheckclean.pnpm buildclean (50 routes,/api/listings/publishedrebuilt as static with 5m revalidate).curl http://localhost:3000/api/listings/published | jq length→50./,/ar,/en/login,/en/listingsall render the Bug icon (1 marker each); Arabic page emitsaria-label="الإبلاغ عن مشكلة"and the dictionary-driven Arabic skip-link.Production (post-merge
/watch):curl https://mk.databayt.org/api/listings/published | jq lengthreturns >0./,/login,/hosting,/admin,/transport-host/x/office-infoand confirm the Bug icon appears bottom-end.databayt/mkan/issueslabelledreportwith the canonical body schema (Page / Time / Reporter / Browser / Viewport / Direction).Server has closed the connectionover 24h.Production env (issue #3)
Ensuring
GITHUB_PERSONAL_ACCESS_TOKEN(scoperepo),DATABASE_URL,AUTH_SECRET, and Stripe live keys are set in the Vercel project env is out of scope for this PR (no code change). I'll close #3 manually after confirming viavercel env ls.Out of scope
en→ar) — lands in Phase B alongside the i18n sweep so dictionary parity is verified first.Closes #4
Closes #5
Refs #3