Skip to content

Land Phase B (DB-backed worker) + marketing site → main#1

Open
Dunya-8a wants to merge 3 commits into
mainfrom
feat/phase-b-db-config-worker
Open

Land Phase B (DB-backed worker) + marketing site → main#1
Dunya-8a wants to merge 3 commits into
mainfrom
feat/phase-b-db-config-worker

Conversation

@Dunya-8a

@Dunya-8a Dunya-8a commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Lands the remaining outstanding work on main as a clean fast-forward (no conflicts):

  • d1edf16 — marketing landing page (site/ + docs/planning/console-build-handoff.md)
  • 193fbc0Phase B: DB-backed no-redeploy worker + PAT-tenant config (apps/worker, runServe extraction, @inky/db PAT relaxation)
  • aca5289 — site: waitlist + mobile + WCAG AA pass

Does this break live Inky? No.

  • The two site: commits are site/ + docs only — zero bot impact.
  • Phase B is dormant: apps/worker is new and not runrender.yaml's start command is unchanged (cli.js serve --config /etc/secrets/inky.config.json, file source). The db PAT change isn't on the live serve path, and the runServe refactor is behavior-preserving (tested).
  • The live worker keeps doing exactly what it does today. The DB path only goes live when you do the manual Step-4 cutover (see apps/worker/README.md).
  • ⚠️ Merging to main triggers a Render redeploy — safe/behavior-preserving, but it is a deploy.

Tests

db 23 · core 204 · worker 6 · ingest 7 = 240, 0 fail; full workspace typechecks.

Not included

The untracked apps/console/ WIP is not in this PR — left to you.

Dunya-8a added 3 commits June 10, 2026 14:10
…ndoff spec

- site/: productionized the friendly Blurple landing page as a standalone static site
  (no build step). Added favicon + apple-touch-icon (real Inky logo), OG/Twitter social
  cards, meta description, theme-color; wired dead # links to the repo; copied brand
  assets; README with deploy + go-live customization notes (domain, Discord-install URL,
  hosted-signup). Deploy to any static host.
- docs/planning/console-build-handoff.md: self-contained spec for another session to build
  the thin self-host admin console (web app #2) — scope, what's already built (db +
  dbConfigSource + hot-reload), what's left (PAT-tenant, app wiring, admin API, UI),
  sequence + acceptance criteria. Explicitly excludes the full Phase 6 SaaS.
Lets the hosted worker read its Config from Postgres and hot-reload it on a poll,
so schedule/setting changes take effect without a redeploy. Self-hosting is
unchanged (inky serve --config, file source, no Postgres).

- db: relax the tenant store for PAT tenants — upsert/loadTenantConfigByOrg now
  accept a tenant with no GitHub App (App tenants write an installation row, PAT
  tenants write none and auth falls back to env GITHUB_TOKEN; the PAT is never
  stored). Adds @inky/db/schema export.
- core: extract the serve orchestration into runServe() (@inky/core/serve),
  taking an optional config-reload watch; the inky serve CLI now routes through
  it (file source), behavior-preserved.
- apps/worker (new): depends on core + db, builds dbConfigSource(db, org) and
  hands its watch to runServe; plus inky-worker-seed to populate/update the DB
  row (the interim admin write path). README documents the Render cutover.

Tests: db 23 (+2 PAT round-trip/flip), core 204 (+4 runServe), worker 6 (new).
Full workspace typechecks. Render cutover (DATABASE_URL, migrate, seed, switch
start command) is the operator step — see apps/worker/README.md.
…y fixes

Pricing: hosted Starter/Pro CTAs are now 'Join the waitlist' (early-access framing) since
the hosted tier isn't live — and a waitlist is the demand signal that gates Phase 6. Self-host
keeps the real 'View on GitHub'.

Mobile: small-screen spacing + type-scale polish (<=600px) on top of the existing per-section
stacking queries.

Accessibility (static WCAG 2.1 AA audit — browser/pa11y tooling unavailable this session):
- Add a skip-to-content link + a <main> landmark.
- aria-hidden on all 14 decorative SVGs (mascot, brand tiles, source logos) to cut SR noise.
- Darken --faint #929AAB -> #677085 (was ~2.9:1; now ~5:1) so captions/timestamps pass AA.
- 'soon' source chips: de-emphasize the (decorative) logo only instead of fading the whole
  chip via opacity, so all text keeps full AA contrast.
Verified OK already: status uses dot+label (not color alone), focus-visible outlines,
prefers-reduced-motion disables animation, single h1 + ordered headings, blurple-on-white ~4.5:1.
@Dunya-8a Dunya-8a changed the title Phase B: DB-backed no-redeploy worker + PAT-tenant config Land Phase B (DB-backed worker) + marketing site → main Jun 10, 2026
@Dunya-8a Dunya-8a changed the base branch from feat/loc-merge-cap-cleaning to main June 10, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant