Commit Graph

54 Commits

Author SHA1 Message Date
Jakub Zych
8d00fe904b docs(07): research admin forms/lists domain
Phase 7: Admin Forms & Lists
- Standard stack identified: circe-yaml, ScalaTags, HTMX
- Architecture patterns documented: YAML ADT parsing, widget registry, form generation
- Pitfalls catalogued: YAML anchors, trigger conditions, repeater state, relation modals
2026-02-05 14:48:52 +01:00
Jakub Zych
1ad1993632 docs(06): create phase plan
Phase 06: Backend Authentication
- 3 plan(s) in 2 wave(s)
- Wave 1: 06-01 (login/logout foundation)
- Wave 2: 06-02 (password reset), 06-03 (RBAC + 2FA) - parallel
- Ready for execution
2026-02-05 14:35:41 +01:00
Jakub Zych
10cdd3f638 docs(06): research backend authentication domain
Phase 6: Backend Authentication
- Standard stack: Password4j (Argon2id), jwt-scala, java-totp
- Architecture: JWT + DB hybrid sessions, progressive lockout, TOTP 2FA
- RBAC: WinterCMS-style plugin-registered permissions
- Security: OWASP-compliant password storage, session management, reset tokens
2026-02-05 14:29:39 +01:00
Jakub Zych
5cdf78b93d docs(05): create phase plan
Phase 05: CLI Scaffolding
- 2 plans in 2 waves
- Wave 1: CLI framework + plugin scaffolding (05-01)
- Wave 2: Theme + component scaffolding (05-02)
- Ready for execution
2026-02-05 14:20:40 +01:00
Jakub Zych
0d4a96fee2 docs(05): research CLI scaffolding domain
Phase 5: CLI Scaffolding
- Standard stack: ZIO CLI 0.7.4, os-lib 0.11.7, fansi 0.5.1
- Architecture patterns for noun-verb commands documented
- Template rendering with string interpolation
- File operations with os-lib
- Interactive wizard mode via ZIO CLI built-in
- Common pitfalls catalogued
2026-02-05 14:15:41 +01:00
Jakub Zych
44685de65e docs(04): create phase plan
Phase 04: Theme Engine
- 2 plans in 2 waves
- Wave 1: Theme loading and layout composition (04-01)
- Wave 2: Asset pipeline and Vue integration (04-02)
- Ready for execution
2026-02-05 14:06:11 +01:00
Jakub Zych
6cc9465f35 docs(04): research theme engine domain
Phase 4: Theme Engine
- Standard stack: Pebble 4.1.1 + pebble-scala for Twig-compatible templates
- Asset bundling: Vite with manifest-based backend integration
- Hot reload: Mill --watch + classloader-based reload
- Vue hydration: createSSRApp with server-rendered HTML
- Caching: ZCaffeine for static page caching
- Architecture patterns documented for layouts, partials, rendering modes
2026-02-05 13:55:41 +01:00
Jakub Zych
3dd38dabd8 docs(03): create phase plan
Phase 03: Component System
- 2 plan(s) in 2 wave(s)
- Wave 1: 03-01 (registration and lifecycle) - parallel
- Wave 2: 03-02 (HTMX routing and response) - sequential
- Ready for execution
2026-02-05 13:45:15 +01:00
Jakub Zych
a68508ba73 docs(03): research component system domain
Phase 3: Component System
- Standard stack: zio-http-htmx 3.3.0, Pebble 4.1.1, htmx4s
- Architecture patterns: YAML properties, lifecycle hooks, HTMX handlers
- WinterCMS component patterns adapted to ZIO
- Pitfalls: CSRF, XSS, state isolation, SSE connections
2026-02-05 13:38:58 +01:00
Jakub Zych
5f2e7b87c9 fix(02): revise plans based on checker feedback
- 02-01 Task 3: Add concrete REPL verification command for PluginManifest.parse
- 02-02 Task 1: Add FieldDef case class to placeholder types in PluginRegistration.scala
- 02-02 Task 1: Document PluginEnv as placeholder to be expanded in 02-03
- 02-03 Task 3: Remove duplicate Main.scala code, keep only corrected version
- 02-03: Add SummerPlugin.scala to files_modified for PluginEnv update
2026-02-05 13:29:45 +01:00
Jakub Zych
336acf5572 docs(02): create phase plan
Phase 02: Plugin System
- 3 plans in 3 waves (sequential)
- 02-01: Plugin discovery and manifest parsing
- 02-02: Lifecycle management and dependency resolution
- 02-03: Extension API with type-safe plugin-to-plugin communication
- Ready for execution
2026-02-05 13:24:06 +01:00
Jakub Zych
030633b5e5 docs(02): research plugin system domain
Phase 2: Plugin System
- Standard stack identified: circe-yaml, semver-parser-scala, directory-watcher
- Architecture patterns documented: ZIO service traits, Hub events, Ref state
- Dependency resolution via topological sort with cycle detection
- Type-safe extension API patterns from Scala 3 features
- Pitfalls catalogued from WinterCMS experience
2026-02-05 13:18:10 +01:00
Jakub Zych
f2f311dbfc docs(quick-001): track JDK 21+ requirement update in STATE.md
Quick task completed.
2026-02-05 13:08:42 +01:00
Jakub Zych
c8e87daa3e docs(quick-001): complete JDK requirement update plan
Tasks completed: 1/1
- Update JDK requirement in research/STACK.md

SUMMARY: .planning/quick/001-update-jdk-requirement-to-21-for-loom-vi/001-SUMMARY.md
2026-02-05 13:08:15 +01:00
Jakub Zych
64dcdedfa2 docs(quick-001): update JDK requirement from 17+ to 21+ for Loom virtual threads
- Update JDK version requirement in Language & Runtime table
- Add rationale explaining Loom virtual threads benefit for JDBC blocking ops
- Clarify ZIO fibers and JVM virtual threads are complementary
2026-02-05 13:07:52 +01:00
Jakub Zych
7a8cad2060 docs(quick): plan JDK 21+ requirement update for Loom virtual threads
Quick task to update JDK requirement from 17+ to 21+ in STACK.md.
Rationale: Loom virtual threads benefit JDBC blocking operations in Quill.
2026-02-05 13:07:00 +01:00
Jakub Zych
7b5fe94e53 feat(01): Simple initial landing 2026-02-05 13:01:34 +01:00
Jakub Zych
d502bb19a5 docs: update README with project overview and quick start 2026-02-05 12:32:12 +01:00
Jakub Zych
dc5564ef22 docs(01): complete Foundation phase 2026-02-05 12:26:43 +01:00
Jakub Zych
e22170714f fix(01): orchestrator corrections 2026-02-05 12:18:55 +01:00
Jakub Zych
46f8b7dc90 docs(01-03): complete Repository Pattern and Infrastructure plan
Tasks completed: 3/3
- Create Repository pattern with typed errors
- Create Pulumi infrastructure with Besom
- Create Dockerfile for containerization

SUMMARY: .planning/phases/01-foundation/01-03-SUMMARY.md

Phase 1 Foundation now complete (3/3 plans)
2026-02-05 12:01:27 +01:00
Jakub Zych
e0e0281ff4 feat(01-03): create Dockerfile for containerization
- Add multi-stage Dockerfile (JDK build, JRE runtime)
- Use Eclipse Temurin 21 base images
- Configure health check on /health endpoint
- Add .dockerignore for efficient builds
- Environment variables for config override
2026-02-05 02:51:05 +01:00
Jakub Zych
bad17b8099 feat(01-03): create Pulumi infrastructure with Besom
- Add infra/ with Scala CLI project config
- Use Besom 0.5.0 with AWS provider 7.7.0
- Define S3 bucket for static assets
- Define RDS PostgreSQL instance for database
- Configure via Pulumi config (summercms:dbPassword required)
2026-02-05 01:28:55 +01:00
Jakub Zych
12e738f1b5 feat(01-03): create Repository pattern with typed errors
- Add User domain model (summer_users table mapping)
- Add RepositoryError ADT (NotFound, Conflict, ValidationError, DatabaseError)
- Implement UserRepository trait with CRUD operations
- Add UserRepositoryLive using Quill with compile-time SQL validation
- Handle SQL exceptions with refineOrDie for typed error channel
2026-02-04 22:41:11 +01:00
Jakub Zych
d2399de260 docs(01-02): complete PostgreSQL and Migrations plan
Tasks completed: 3/3
- Create Quill PostgreSQL context
- Create Flyway migrator service
- Add /ready endpoint with database check

SUMMARY: .planning/phases/01-foundation/01-02-SUMMARY.md
2026-02-04 22:31:32 +01:00
Jakub Zych
0059add4a1 feat(01-02): add /ready endpoint with database connectivity check
- Add GET /ready endpoint that checks database connection
- Returns 200 'ready' when connected, 503 when not
- Update Routes to require DataSource dependency
- Provide dataSourceLayer in Main.scala
- Use 'hikari' prefix for HikariCP config to avoid ZIO config conflict
2026-02-04 22:20:35 +01:00
Jakub Zych
ddb1964d1a feat(01-02): create Flyway migrator service and initial migration
- Add Migrator trait with migrate/status ZIO effects
- Create V1 migration for summer_users table
- Configure Flyway with summer_migrations table and classpath location
- Migrations run manually via CLI, not on startup
2026-02-04 22:13:03 +01:00
Jakub Zych
106e66413e feat(01-02): create Quill PostgreSQL context with ZIO integration
- Add QuillContext with dataSourceLayer and quillLayer
- Update application.conf for HikariCP-compatible format
- Export combined quillLive layer for database access
2026-02-04 22:00:33 +01:00
Jakub Zych
bcf928da77 docs(01-01): complete Mill Build and ZIO HTTP Server plan
Tasks completed: 3/3
- Create Mill build configuration
- Create project structure and configuration
- Create HTTP routes and Main entry point

SUMMARY: .planning/phases/01-foundation/01-01-SUMMARY.md
2026-02-04 21:45:03 +01:00
Jakub Zych
3757cf883b feat(01-01): create HTTP routes and Main entry point
- HealthRoutes with GET /health returning 'ok'
- Routes composition point for all route modules
- Main extends ZIOAppDefault with HOCON config
- ASCII sun banner with SUMMERCMS branding
- Server reads port from application.conf
2026-02-04 21:43:24 +01:00
Jakub Zych
4278b84614 feat(01-01): create configuration infrastructure
- AppConfig, ServerConfig, DatabaseConfig case classes
- zio-config-magnolia for automatic Config derivation
- HOCON application.conf with env variable overrides
- Server: host/port with SERVER_HOST/SERVER_PORT overrides
- Database: host/port/database/user/password with DB_* overrides
2026-02-04 21:39:44 +01:00
Jakub Zych
aedb45fc13 feat(01-01): create Mill build configuration with ZIO dependencies
- Mill 1.1.1 build file with Scala 3.3.4
- ZIO 2.1.14, zio-http 3.0.1, zio-config 4.0.2
- Quill 4.8.5, PostgreSQL driver 42.7.4, Flyway 10.21.0
- Assembly rules for fat JAR with service file merging
- .gitignore for Mill artifacts (out/, mill executable)
2026-02-04 21:38:53 +01:00
Jakub Zych
db76c5dd91 fix(01): reconcile migration policy - manual via CLI, not auto on startup
- Updated 01-02-PLAN.md Task 3 to NOT run migrations on startup
- Updated must_haves truth: 'run via ZIO effect when invoked' (not 'on startup')
- Updated verification/success_criteria to reflect manual migration
- Updated ROADMAP success criteria #3 to match CONTEXT.md decision

Per CONTEXT.md line 22-23: migrations run manually via CLI command
2026-02-04 17:25:27 +01:00
Jakub Zych
3f1fc59d23 docs(01): create phase 1 foundation plans
Phase 01: Foundation
- 3 plans in 3 waves (sequential dependency)
- Plan 01: Mill build + ZIO HTTP server
- Plan 02: PostgreSQL + Quill + Flyway migrations
- Plan 03: Repository pattern + Pulumi/Besom deployment

Ready for execution
2026-02-04 17:21:15 +01:00
Jakub Zych
a0f198e894 docs(01): research phase domain
Phase 01: Foundation
- Standard stack identified (Mill, ZIO HTTP, Quill, Flyway, Besom)
- Architecture patterns documented (service layer, typed errors, HOCON config)
- Pitfalls catalogued (effect wrapping, transaction nesting, Besom laziness)
2026-02-04 17:16:06 +01:00
Jakub Zych
02ee2b296b docs(10): capture phase context
Phase 10: Core Plugins
- Implementation decisions documented
- Phase boundary established
2026-02-04 17:06:27 +01:00
Jakub Zych
94ebf3f7b5 docs(09): capture phase context
Phase 09: Content Management
- Implementation decisions documented
- Phase boundary established
2026-02-04 16:51:37 +01:00
Jakub Zych
cf711a996d docs(08): capture phase context
Phase 08: Admin Dashboard
- Implementation decisions documented
- Phase boundary established
2026-02-04 16:38:25 +01:00
Jakub Zych
8abdc30bf2 docs(07): capture phase context
Phase 07: Admin Forms & Lists
- Implementation decisions documented
- Phase boundary established
2026-02-04 16:29:23 +01:00
Jakub Zych
90a2473fd0 docs(06): capture phase context
Phase 06: Backend Authentication
- Implementation decisions documented
- Phase boundary established
2026-02-04 16:15:54 +01:00
Jakub Zych
90cd7b1bf0 docs(05): capture phase context
Phase 05: CLI Scaffolding
- Implementation decisions documented
- Phase boundary established
2026-02-04 16:06:41 +01:00
Jakub Zych
1eaa5f5d16 docs(04): capture phase context
Phase 04: Theme Engine
- Template syntax decisions (Twig-style, string templates)
- Layout composition (WinterCMS-style placeholders)
- Asset pipeline requirements (hot reload, bundling)
- Rendering modes (SPA, hybrid, static)
2026-02-04 15:54:14 +01:00
Jakub Zych
63e334d92b docs(03): capture phase context
Phase 03: Component System
- Implementation decisions documented
- Phase boundary established
2026-02-04 15:38:45 +01:00
Jakub Zych
ec0e8daddf docs(02): capture phase context
Phase 02: Plugin System
- Implementation decisions documented
- Phase boundary established
2026-02-04 15:13:09 +01:00
Jakub Zych
8f3c671cac docs(01): capture phase context
Phase 01: foundation
- Implementation decisions documented
- Phase boundary established
2026-02-04 13:57:50 +01:00
Jakub Zych
efe518cbe8 docs: create roadmap (10 phases)
Phases:
1. Foundation: Database, migrations, repository, deployment
2. Plugin System: Discovery, lifecycle, dependencies, extension API
3. Component System: Reusable UI with HTMX
4. Theme Engine: Layouts, partials, Vue integration
5. CLI Scaffolding: Plugin/theme/component commands
6. Backend Authentication: Users, login, RBAC
7. Admin Forms & Lists: YAML-driven generation
8. Admin Dashboard: Widgets and settings
9. Content Management: Pages, media, menus
10. Core Plugins: User and Blog plugins

All 43 v1 requirements mapped to phases.
2026-02-04 13:11:29 +01:00
Jakub Zych
318bdf84ac docs: define v1 requirements
38 requirements across 7 categories:
- Core Framework (9)
- Admin Backend (7)
- User & Auth (4)
- Content Management (9)
- Core Plugins (8)
- Differentiators (2)
- Infrastructure (4)

Deferred to v2: API/headless, additional plugins, advanced features
2026-02-04 13:04:19 +01:00
Jakub Zych
834dd51bcc docs: complete project research for SummerCMS
Files:
- STACK.md - ZIO ecosystem recommendations (Scala 3.3.7 LTS, ZIO HTTP 3.8.1, Quill 4.8.6, Mill 1.0)
- FEATURES.md - CMF feature inventory from WinterCMS reference (table stakes, differentiators, anti-features)
- ARCHITECTURE.md - ZIO layer-based architecture with plugin system patterns
- PITFALLS.md - 23 identified pitfalls across Scala/ZIO, CMF rewrite, scope, and team dimensions
- SUMMARY.md - Executive synthesis with 7-phase roadmap recommendations

Key findings:
- Stack: ZIO ecosystem production-ready, Quill endorsed as only maintained database library
- Architecture: Plugin System is critical bottleneck, build 3-5 plugins before finalizing API
- Critical pitfall: Big Rewrite Anti-Pattern - define MVP as "build new site" not "full WinterCMS parity"

Ready for roadmap creation.
2026-02-04 02:46:18 +01:00
Jakub Zych
a185132635 Initial research ahahahah 2026-02-04 02:18:31 +01:00
Jakub Zych
7b54ecb959 Thank you GROK 2026-02-04 01:35:47 +01:00