Commit graph

11 commits

Author SHA1 Message Date
a6785f74ee chore(plan): add targeted hosted schema command 2026-09-22 08:30:20 +02:00
75c321bad2 feat(pwa): icon build script and committed PNG outputs
Phase 8b Task 2. @resvg/resvg-js renders public/icons/source.svg
into the four PNG sizes the manifest + iOS expect: 192, 512,
maskable-512 (Android safe-zone), and apple-touch-icon-180.
Build is one-shot — outputs are committed, runtime doesn't ship
the dep.
2026-09-21 11:22:32 +02:00
2a57d29279 chore(dev): add dev:webpack script as a Turbopack fallback
The chunk.reason.enqueueModel crash tracked in vercel/next.js#92362 is
Turbopack-specific — the React flight client in react-server-dom-turbopack
exposes an enqueueModel method that react-server-dom-webpack does not. Run

> client-board@0.1.0 dev:webpack
> next dev --webpack

▲ Next.js 16.2.6 (webpack)
- Local:         http://localhost:3000
- Network:       http://192.168.1.162:3000
- Environments: .env.local
✓ Ready in 554ms
[?25h while the upstream issue is open if the overlay
keeps catching the crash in spite of the ThemeScript / hydration fixes.
2026-09-17 12:24:40 +02:00
b233259f18 feat(ai): OpenAI-compatible adapter for MiniMax 2026-09-16 15:53:34 +02:00
79fa035eb0 docs(plan): Phase 3a, 3b and 3c for AI humanisation
3a ports the provider structure from MEGAIFRASTRUCTURE's chat/ — SDK-free
types, one adapter per provider — but deliberately not its interface: this
phase needs text in, text out, not a chat transcript and tool protocol. It
carries forward the MiniMax details that module learned the hard way: the
native /v1 route rather than the /anthropic shim, an Open Platform key, and
stripping the inline <think> blocks M2.x emits.

3b is built around one property: batch responses are matched to commits by
an echoed index, never by position. A single skipped line under positional
matching would attach fluent, confident, wrong sentences to every later
commit, with nothing raising an error.

3c is the first plan whose output a client reads, so its verification step
is to read a narrative as the client would and check it claims no
completion, states no date, and invents nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 15:52:32 +02:00
95346c5c82 docs: Coolify-only setup, and mark pb_migrations as non-executing
There is one PocketBase instance and it is hosted. Removes the `npm run pb`
script, which started a local server nothing used.

The schema had two apparent sources of truth. scripts/setup-remote.ts is the
one that actually runs; pb_migrations/ only executes on PocketBase server
start, which never happens here. Both now say so, so nobody edits a migration
and believes the schema changed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 10:32:26 +02:00
972d45d38b feat(board): owner drag and drop with optimistic persistence 2026-09-16 10:03:22 +02:00
2949fdabb7 feat(ui): pill, icon button and dropdown primitives 2026-09-16 10:00:20 +02:00
f9e3e576f0 feat(pb): browser, server and superuser PocketBase clients 2026-09-16 09:41:46 +02:00
ba990f0109 feat(schema): all collections + role-scoped API rules on remote PB
- migrations/ documented in pocketbase/pb_migrations/ for local PB
- scripts/setup-remote.ts applies them via admin API to remote PB
- collections: clients, projects, columns, cards, subtasks, comments, activity, settings
- user extension: role (owner|client_manager), client (relation)
- writes: owner only for app collections, superuser-only for activity and settings
2026-09-16 09:41:20 +02:00
d55103ae2d chore(scaffold): Next.js 16 + Tailwind 4 + vitest project skeleton 2026-09-16 09:37:43 +02:00