myrmidex
  • Joined on 2026-02-08
myrmidex pushed to feature/50-user-ownership at lvl0/buckets 2026-06-24 23:26:51 +02:00
2eff969a10 50 - Stamp authenticated user as Scenario owner on write
7a47e859a7 32 - Expose stateless distribution preview endpoint
Compare 2 commits »
myrmidex closed issue lvl0/buckets#32 2026-06-22 20:30:19 +02:00
Port allocation/distribution engine
myrmidex commented on issue lvl0/buckets#32 2026-06-22 20:30:12 +02:00
Port allocation/distribution engine

Done. Phased allocation engine + stateless preview endpoint shipped. 170 tests green, PHPStan clean, Pint clean, 100% line coverage on all new classes. Pre-commit (code-reviewer) + finish-phase…

myrmidex pushed to main at lvl0/buckets 2026-06-22 18:54:56 +02:00
d6f47dea66 32 - Expose stateless distribution preview endpoint
5c5369328a 32 - Add ProjectionPreviewOutput DTO with fromResult mapping
af467de439 32 - Add AllocateIncome action for phased income
556f45146c 32 - Add EvenSplitter for even distribution with redistribute
d7af49cf8e 32 - Fix buffer-stage room and unify cap clamping
Compare 7 commits »
myrmidex opened issue lvl0/buckets#50 2026-06-22 18:50:06 +02:00
Scenarios and buckets belong to users (per-user ownership)
myrmidex closed issue lvl0/buckets#31 2026-06-20 10:19:53 +02:00
Port domain model: Scenario, Bucket, Stream entities
myrmidex commented on issue lvl0/buckets#31 2026-06-20 10:16:17 +02:00
Port domain model: Scenario, Bucket, Stream entities

Done — domain model ported to Doctrine + API Platform. 86 tests / 252 assertions green, PHPStan + CS clean. 10 commits (59807d8..bebc042).

Exit criteria

  • Entities migrate —…
myrmidex pushed to main at lvl0/buckets 2026-06-20 10:15:28 +02:00
bebc0427b9 31 - Add required-field validation
1a90a18b49 31 - Expose Bucket and Stream via API
e4ae6dabf6 31 - Expose Scenario via API with ROLE_USER gating
a2663be938 31 - Add buffer multiplier validation
3163a95f37 31 - Add single-overflow-per-scenario invariant
Compare 11 commits »
myrmidex commented on issue lvl0/buckets#30 2026-06-18 20:33:54 +02:00
Cookie-session auth (same-origin)

Follow-up: deferred stateless CSRF is now WON'T-DO (superseded by SameSite)

This ticket deferred "explicit stateless double-submit CSRF" to the first mutating-resource ticket (#31). Revisited…

myrmidex pushed to main at lvl0/buckets 2026-06-18 20:23:38 +02:00
1b1d9db626 30 - Add cookie-session auth: json_login, /api/me, logout
myrmidex closed issue lvl0/buckets#30 2026-06-18 20:15:33 +02:00
Cookie-session auth (same-origin)
myrmidex commented on issue lvl0/buckets#30 2026-06-18 18:00:19 +02:00
Cookie-session auth (same-origin)

CSRF scope clarification (2026-06-18)

The original plan was to add stateless double-submit CSRF tokens on /api/login via json_login's enable_csrf option. While implementing, we verified…

myrmidex pushed to main at lvl0/buckets 2026-06-18 01:37:56 +02:00
b7d1de44c1 30 - Add cookie-session auth: json_login, /api/me, logout
7c893c9988 30 - Install Monolog
Compare 2 commits »
myrmidex pushed to main at lvl0/buckets 2026-06-17 23:49:54 +02:00
b8971552d7 Add user entity
myrmidex pushed to main at lvl0/buckets 2026-06-17 21:24:31 +02:00
933e2a52df Add user entity
21110c6e70 Install DAMA
afb99a11ec Install maker bundle
Compare 3 commits »
myrmidex closed issue lvl0/buckets#29 2026-06-15 01:16:09 +02:00
Dev tooling: PHPStan, PHP-CS-Fixer, PHPUnit + container MCP wiring
myrmidex commented on issue lvl0/buckets#29 2026-06-15 01:16:03 +02:00
Dev tooling: PHPStan, PHP-CS-Fixer, PHPUnit + container MCP wiring

Done (3 commits). Toolchain green via dev-* nix-shell wrappers:

  • PHPUnit (symfony/test-pack) → dev-test. Real Postgres test DB (buckets_test), not SQLite.
  • PHPStan level 6 +…
myrmidex pushed to main at lvl0/buckets 2026-06-15 01:15:15 +02:00
57dcabc44f 29 - Add PHP-CS-Fixer
41a984950f 29 - Add PHPStan
Compare 2 commits »
myrmidex pushed to main at lvl0/buckets 2026-06-15 01:04:24 +02:00
b230aa3fd2 29 - Add PHPUnit
myrmidex closed issue lvl0/buckets#28 2026-06-15 00:57:52 +02:00
Containerize dev: adopt dunglas/symfony-docker + Postgres + Vite frontend service