kamilkrzywda
f3751b4747
feat(game): skill XP on task completion + power bands in duration ( #45 )
CI / build + unit + e2e (pull_request) Successful in 2m48s
2026-10-04 02:34:56 +00:00
kamilkrzywda
5bc411cb76
fix(db): consistent starting xp in crew_skills seeder ( #45 )
2026-10-04 02:19:36 +00:00
kamilkrzywda
7f2121a717
feat(game): skills.ts — XP, levels, power bands, titles ( #45 )
CI / build + unit + e2e (pull_request) Successful in 2m53s
2026-10-04 01:33:05 +00:00
kamilkrzywda
449d4b9895
feat(db): crew_skills table + role-based starting levels — schema v8 ( #45 )
CI / build + unit + e2e (pull_request) Successful in 2m48s
2026-10-04 00:56:30 +00:00
kamilkrzywda
678cd48a94
Merge pull request 'fix: hydration-safe banner clock ( #44 , v0.10.1)' ( #47 ) from fix/hydration-jump-dispatch into master
CI / build + unit + e2e (push) Successful in 3m32s
v0.10.1
2026-10-04 01:52:28 +02:00
kamilkrzywda
e792c8a06c
fix(ui): team builder — coalesce the queued-jump block to null so an empty queue no longer disables JUMP dispatch ( #44 )
CI / build + unit + e2e (pull_request) Successful in 2m38s
2026-10-03 23:42:32 +00:00
kamilkrzywda
8f018a6ee9
chore(release): v0.10.1 — hydration-safe banner clock ( #44 )
CI / build + unit + e2e (pull_request) Failing after 33m24s
2026-10-03 18:36:40 +00:00
kamilkrzywda
f1633eb518
fix(ui): hydration-safe banner clock — no build-time clock in the prerendered banner ( #44 , v0.10.1)
2026-10-03 18:36:19 +00:00
kamilkrzywda
1993623548
docs(agents): next.js agent rules block (added by next dev)
2026-10-03 18:36:15 +00:00
kamilkrzywda
9020a773e1
Merge pull request 'feat: crew-driven actions — queue + tick engine, NEXT TURN, team builder, task strip ( #44 , v0.10.0)' ( #46 ) from feat/crew-driven-actions into master
CI / build + unit + e2e (push) Failing after 33m2s
CI / build + unit + e2e (pull_request) Failing after 32m56s
v0.10.0
2026-10-03 03:07:42 +02:00
kamilkrzywda
bf5ac8c8a8
chore(release): v0.10.0 — crew-driven actions engine ( #44 )
CI / build + unit + e2e (pull_request) Failing after 33m9s
2026-10-03 00:57:43 +00:00
kamilkrzywda
babae7c392
docs: approved crew-driven-actions spec + implementation plan ( #44 )
2026-10-03 00:57:11 +00:00
kamilkrzywda
a0307e4ccd
fix(e2e): task-10 review fixes — Nth tick, retry-safe preambles, queue-DTO shape ( #44 )
CI / build + unit + e2e (pull_request) Failing after 34m10s
2026-10-03 00:35:10 +00:00
kamilkrzywda
1ddb8ad469
test(e2e): rework the suite to the queue + NEXT TURN model ( #44 )
2026-10-03 00:05:18 +00:00
kamilkrzywda
b51bde3c25
test(e2e): rework the existing action tests to the queue + NEXT TURN model (2/3) ( #44 )
2026-10-02 23:45:11 +00:00
kamilkrzywda
53cf1bdacc
test(e2e): rework shared helpers + state spec to the queue + NEXT TURN model (1/3) ( #44 )
2026-10-02 23:11:37 +00:00
kamilkrzywda
f1b5645e9d
feat(ui): active-tasks strip bottom-left — active first, pending dimmed ( #44 )
2026-10-02 21:02:37 +00:00
kamilkrzywda
1cabea7972
fix(ui): team builder lead rule mirrors the route busy check (helper-on-PENDING is not a valid lead) ( #44 )
2026-10-02 20:55:26 +00:00
kamilkrzywda
a199b64348
feat(ui): team builder — lead + helpers with live duration preview, wired into the action panels ( #44 )
2026-10-02 20:34:14 +00:00
kamilkrzywda
07c1508999
feat(ui): NEXT TURN button (bottom-right) + turn counter; empty queue is a free skip ( #44 )
2026-10-02 20:04:38 +00:00
kamilkrzywda
1084f4e099
fix(api): guard task-queue name resolution against corrupted rows ( #44 )
2026-10-02 19:58:40 +00:00
kamilkrzywda
84d1aa8122
feat(api): world/system/crew snapshots expose the active + pending task queue ( #44 )
2026-10-02 19:42:19 +00:00
kamilkrzywda
178de6e4fb
feat(api): POST /api/turn ticks the queue one turn; an empty queue is a free skip ( #44 )
2026-10-02 19:12:51 +00:00
kamilkrzywda
03b8b661f6
feat(api): ship + research endpoints queue tasks with lead + helpers; mission accept is instant and free ( #44 )
CI / build + unit + e2e (pull_request) Failing after 3m58s
2026-10-02 18:36:14 +00:00
kamilkrzywda
4e312d054f
feat(api): jump + explore endpoints queue tasks with lead + helpers instead of resolving instantly ( #44 )
2026-10-02 15:47:31 +00:00
kamilkrzywda
d7faf739a9
feat(game): tickTurn + runTurn — the turn tick: decrement, resolve, FIFO auto-start, one turn per call ( #44 )
2026-10-02 14:30:49 +00:00
kamilkrzywda
bbcd77c41b
feat(game): per-type resolvers — jump/explore/ship/research effect extraction for task resolution ( #44 )
2026-10-02 13:55:32 +00:00
kamilkrzywda
d4491e082e
feat(game): queueTask — queue-time validation, cost deduction, ACTIVE/PENDING row ( #44 )
2026-10-02 13:25:25 +00:00
kamilkrzywda
6c51c3cec8
feat(game): tasks table + schema v7 backfill, admin registry ( #44 )
2026-10-02 13:08:53 +00:00
kamilkrzywda
f52a59c5fc
feat(game): crew-costs balance module + computeDuration duration model ( #44 )
2026-10-02 12:58:57 +00:00
kamilkrzywda
2a8cb4da06
Merge pull request 'v0.9.12 — admin button + direct DB table CRUD, no auth for now ( #38 )' ( #42 ) from admin-db-crud into master
CI / build + unit + e2e (push) Successful in 2m41s
v0.9.12
2026-09-29 23:53:45 +02:00
kamilkrzywda
0d2370850f
feat(admin): DB CRUD panel + /api/admin endpoints ( #38 )
...
CI / build + unit + e2e (pull_request) Successful in 3m47s
- ADMIN button in the mission-control header opens a table picker + row grid with add/edit/delete (components/admin-panel.tsx), deliberately unauthenticated by explicit request
- /api/admin/tables and /api/admin/tables/{name}/rows driven off a name→table registry built from lib/db/schema.ts (lib/db/admin.ts) — no per-table code; 404 unknown table, 400 malformed payload, 409 constraint violation
- OpenAPI spec updated for all four admin operations + Admin* schemas
- unit: lib/db/admin.test.ts (registry, CRUD round-trips, composite PKs, error mapping); e2e: read-only admin.spec.ts
2026-09-29 21:48:15 +00:00
kamilkrzywda
be11aac356
Merge pull request 'v0.9.11 — fix #35 e2e spec (tab restore + strict mode), test-only' ( #41 ) from fix-navai-e2e into master
CI / build + unit + e2e (push) Successful in 2m42s
v0.9.11
2026-09-29 17:44:09 +02:00
kamilkrzywda
fdc5624b0c
fix(e2e): make the #35 NAV AI spec survive tab restore and multi-match sublabels
CI / build + unit + e2e (pull_request) Successful in 3m7s
2026-09-29 15:37:45 +00:00
kamilkrzywda
ff4ced9d71
Merge pull request 'v0.9.11 — NAVIGATION AI unlocks two-hop jumps ( #35 )' ( #40 ) from navigation-ai into master
CI / build + unit + e2e (push) Failing after 2m40s
2026-09-29 16:57:43 +02:00
kamilkrzywda
d14ffdcf2f
feat(game): NAVIGATION AI unlocks two-hop jumps in one action ( #35 )
CI / build + unit + e2e (pull_request) Failing after 3m11s
2026-09-29 14:53:11 +00:00
kamilkrzywda
d083b5b708
Merge pull request 'v0.9.10 — world map fills entire tab area, no scrollbar ( #36 )' ( #39 ) from world-map-full-area into master
CI / build + unit + e2e (push) Successful in 3m22s
v0.9.10
2026-09-29 16:09:15 +02:00
kamilkrzywda
c012b0fe56
fix(ui): keep the OPERATIONS tab bar intact when tall tabs overflow the pane ( #36 )
CI / build + unit + e2e (pull_request) Successful in 2m30s
2026-09-29 14:03:27 +00:00
kamilkrzywda
6483d510ef
Merge pull request 'v0.9.10 — world map fills entire tab area, no scrollbar ( #36 )' ( #37 ) from world-map-full-area into master
CI / build + unit + e2e (push) Failing after 13m40s
2026-09-29 15:03:00 +02:00
kamilkrzywda
bc6bc7dd07
fix(ui): scale WORLD MAP to fill its tab pane without an internal scrollbar ( #36 )
CI / build + unit + e2e (pull_request) Failing after 13m30s
2026-09-29 12:59:16 +00:00
kamilkrzywda
3a786913df
Merge pull request 'v0.9.9 — world map: force-directed graph with pan+zoom ( #28 )' ( #34 ) from world-map-graph-viz into master
CI / build + unit + e2e (push) Successful in 3m10s
v0.9.9
2026-09-29 13:27:17 +02:00
kamilkrzywda
978a1d119d
feat(ui): render WORLD MAP as a force-directed d3 graph with pan + zoom ( #28 )
CI / build + unit + e2e (pull_request) Successful in 2m50s
2026-09-29 11:24:02 +00:00
kamilkrzywda
a57c590bae
Merge pull request 'v0.9.8 — pin tab bar at top while panel content scrolls ( #31 )' ( #33 ) from pin-tab-bar into master
CI / build + unit + e2e (push) Successful in 2m49s
v0.9.8
2026-09-29 12:25:01 +02:00
kamilkrzywda
1710e50b63
fix(ui): pin the OPERATIONS tab bar while panel content scrolls ( #31 )
...
CI / build + unit + e2e (pull_request) Successful in 2m47s
The TabsList is now position:sticky top:0 with a z-index above the panel
content. In wide mode it pins to the top of the OPERATIONS scroll area
(#21 's center-pane scroller); in narrow mode, where the body scrolls and
there is no inner scroll container, it pins to the viewport. The existing
opaque background keeps scrolled content from showing through.
2026-09-29 10:22:14 +00:00
kamilkrzywda
1bb04d2a51
Merge pull request 'v0.9.7 — local system refreshes after jump, no page reload needed ( #30 )' ( #32 ) from local-system-refresh into master
CI / build + unit + e2e (push) Successful in 3m7s
v0.9.7
2026-09-29 12:03:41 +02:00
kamilkrzywda
e27ff7015e
fix(ui): refresh LOCAL SYSTEM after a jump instead of waiting for a page reload ( #30 )
...
CI / build + unit + e2e (pull_request) Successful in 2m39s
WorldMapPanel owns the world state and applied the /api/jump response
locally, so MissionControl's lifted /api/system state (LOCAL SYSTEM tab,
CARGO HOLD, SECTOR row) stayed on the previous system until a full refresh.
The panel now takes an onJumped callback that MissionControl wires to an
/api/system refetch after every successful jump.
2026-09-29 10:00:18 +00:00
kamilkrzywda
e6c88b10c2
Merge pull request 'v0.9.6 — keep active tab between page refresh ( #27 )' ( #29 ) from keep-active-tab into master
CI / build + unit + e2e (push) Successful in 2m46s
v0.9.6
2026-09-29 11:43:21 +02:00
kamilkrzywda
f4690bc1a2
feat(ui): keep the active operations tab across page refreshes ( #27 )
...
CI / build + unit + e2e (pull_request) Successful in 2m15s
Persist the selected tab ID to localStorage (sw-active-tab) on every change
and restore it on mount when it matches one of the seven valid tab IDs. The
Radix Tabs become controlled for this; SSR and first client render still agree
on the default, so there is no hydration mismatch.
2026-09-29 09:42:18 +00:00
kamilkrzywda
4b030716f7
Merge pull request 'v0.9.5 — fix infinite loop on name-pool exhaustion (server freeze) ( #21 )' ( #26 ) from ui-layout-fix into master
CI / build + unit + e2e (push) Successful in 2m54s
v0.9.5
2026-09-29 11:22:07 +02:00
kamilkrzywda
06f8a28e96
fix(game): numbered name fallback when pool exhausted — server no longer freezes past 128 systems
...
CI / build + unit + e2e (pull_request) Successful in 2m38s
Production freeze reported after the v0.9.3 (#21 ) deploy: every API route
hung and all panels stayed at LOADING. Root cause was not the #21 layout
(verified healthy across all 7 tabs/viewports) but makeName's unbounded
rejection loop over a finite 16x8=128 system-name pool — once a save grew
past ~128 systems, any jump into an undiscovered system spun forever on
Node's single thread (sql.js is synchronous), blocking the whole process.
makeName and makeCrewName now fall back to numbered variants ('Kepler Drift 2')
once their pools are exhausted, so they always terminate.
2026-09-29 09:18:00 +00:00