Commit Graph

1427 Commits

Author SHA1 Message Date
fa765e493a feat: Set up npm workspace structure for DBAL integration
Workspace Setup Complete:
- Added dbal/development to root package.json workspaces
- Added @metabuilder/dbal dependency to frontends/nextjs (file reference)
- Updated TypeScript paths in frontend to resolve via node_modules
- Installed workspace dependencies successfully

Structure Now In Place:
 dbal/development is registered as workspace
 @metabuilder/dbal dependency declared in frontend
 Path aliases configured for @/dbal resolution
 npm install works with all dependencies

Pre-existing DBAL Build Issues Found:
⚠️ src/core/foundation/types/types.generated missing
⚠️ CodeGen script (tsx ../shared/tools/codegen/gen_types.ts) failing
⚠️ exactOptionalPropertyTypes causing TypeScript errors in KV operations

These are pre-existing issues in DBAL code, not related to workspace setup.
Will need separate DBAL build fix task.

For now, workspace structure is ready for when DBAL build is fixed.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 01:26:32 +00:00
890b491819 feat: TD-1 Phase 1 & 2.1 complete - Create unified db-client integration
Phase 1 (DBAL Foundation): ALREADY DONE 
- DBAL exports getDBALClient(), seedDatabase(), getPrismaClient()
- All factories and Prisma initialization in DBAL

Phase 2.1 (Unified Integration Point): COMPLETE 
- Created /frontends/nextjs/src/lib/db-client.ts
- Exports unified `db` instance and `getDB()` factory
- Single source of truth for database access in frontend

Support Artifacts:
- Created /TD_1_REFACTORING_GUIDE.md with step-by-step refactoring instructions
- Documents exact patterns to replace 14 Prisma imports + 110+ getAdapter() calls
- Provides 3 implementation approaches (automated, manual, git-based)
- Includes verification checklist and testing strategy

Updated TECH_DEBT.md:
- References new refactoring guide
- Shows Phase 1 is done, Phase 2 ready for execution
- Clear instructions for Phase 2 frontend cleanup
- Phase 3 build system updates

Scope: Ready to refactor ~100 frontend files to use new db-client pattern.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 01:16:03 +00:00
rmac
01de695619 Set up database seeding architecture and E2E testing infrastructure
- Add CLAUDE.md: AI assistant instructions for MetaBuilder project architecture
- Add TESTING.md: Comprehensive E2E testing guide and troubleshooting

Core changes:
- Create Playwright global.setup.ts to seed database before E2E tests
- Add /api/setup endpoint to trigger database seeding via HTTP
- Implement seed-home-page.ts module loaded from ui_home package metadata
- Create ui_home/seed/metadata.json defining home page PageConfig seed data

Architecture established:
- Packages define seed data in seed/metadata.json
- Seed functions are idempotent (check before creating)
- Global setup calls /api/setup before running tests
- Database schema must be created via 'npm run db:push' before seeding

Test flow:
1. Playwright starts webServer (generates Prisma client, starts Next.js)
2. Global setup waits for server, calls POST /api/setup
3. Seeding creates default data from packages
4. E2E tests run against seeded database

This establishes proper separation of concerns:
- DBAL adapter for database access (not raw Prisma)
- Package-driven seed data (not hardcoded in code)
- HTTP endpoint for explicit database initialization
- Idempotent seeds (safe to rerun)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-14 18:15:46 +00:00
rmac
46b15e1292 stuff 2026-01-14 17:43:58 +00:00
db2ba3d034 Clarify root package file copy in Next.js Dockerfile 2026-01-13 21:47:26 +00:00
05c7b2fb66 Fix Docker build by copying lockfile 2026-01-13 21:34:52 +00:00
dependabot[bot]
1897c5a49a build(deps-dev): bump @types/node from 20.19.28 to 25.0.7
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.19.28 to 25.0.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 25.0.7
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 21:01:41 +00:00
dependabot[bot]
187811d4c1 build(deps-dev): bump @types/react from 19.2.7 to 19.2.8
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.2.7 to 19.2.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-12 14:52:08 +00:00
copilot-swe-agent[bot]
7e3851c93b Fix all 22 failing unit tests in Gate 2.1
- Fixed API client: Changed response.json().catch() to try-catch pattern (14 tests)
- Fixed auth middleware: Check for undefined user before accessing user.level (1 test)
- Fixed compiler: Treat empty string as undefined for map field (3 tests)
- Fixed retry tests: Use callCount variable instead of mock.calls.length (4 tests)
- Fixed unhandled rejection warnings: Add catch handlers in error tests

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 18:03:40 +00:00
copilot-swe-agent[bot]
eb0289d593 Address code review feedback: fix workflow step ID, improve YAML regex, remove error suppression
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 17:40:13 +00:00
copilot-swe-agent[bot]
9a757fd5df Add GHCR container image support with multi-arch builds and security scanning
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 17:37:44 +00:00
copilot-swe-agent[bot]
2ffab4b4ba Fix all ESLint errors and warnings
- Fixed unnecessary conditional checks for optional properties in page.tsx
- Fixed unnecessary type assertions in page.tsx
- Fixed nullable object checks in test files
- Fixed nullable string checks in filtering.ts and validate-email.ts
- Removed unused eslint-disable directives across multiple files
- Fixed redundant type warning in monaco-editor-react.d.ts
- Generated Prisma types to resolve type errors

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 17:05:28 +00:00
copilot-swe-agent[bot]
5b49332c2f Fix all remaining TypeScript type errors - typecheck now passes
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 16:42:01 +00:00
copilot-swe-agent[bot]
208b2ec07a Fix remaining TypeScript errors in frontend and tests
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 16:30:58 +00:00
copilot-swe-agent[bot]
1a3ee146c1 Fix Promise await issues and add sx prop to fakemui components
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 16:21:35 +00:00
copilot-swe-agent[bot]
1aa625327b Fix TypeScript syntax errors in test files
- Fixed ItemsPerPageSelector.test.tsx line 46: Added missing if statement and proper bracing
- Fixed retry.test.ts lines 148, 167, 176, 190: Moved eslint-disable comments to proper location
- All reported TypeScript compilation errors are now resolved

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 15:55:18 +00:00
copilot-swe-agent[bot]
c7058874e0 Fix final batch of linting issues - 137 of 140 fixed! (3 parsing errors remain)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 15:33:38 +00:00
copilot-swe-agent[bot]
7538a1b66e Fix fourth batch of linting issues (18 fixed, 28 remaining - 20 errors, 8 warnings)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 15:24:46 +00:00
copilot-swe-agent[bot]
a3cb9c074f Fix third batch of linting issues (35 fixed, 52 remaining)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 15:16:14 +00:00
copilot-swe-agent[bot]
c5ebdfe45a Fix second batch of linting issues (21 fixed, 87 remaining)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 15:10:45 +00:00
copilot-swe-agent[bot]
48bf3bcbc4 Fix first batch of linting issues (32 fixed, 108 remaining)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 15:03:17 +00:00
copilot-swe-agent[bot]
df795327f8 Add missing E2E test scripts to frontends/nextjs/package.json
- Added test:unit script for unit tests
- Added test:e2e script referencing root Playwright config
- Added test:e2e:ui, test:e2e:headed, test:e2e:debug scripts
- Added test:e2e:report script
- Added test:e2e:dbal-daemon script for daemon-specific tests
- Fixed playwright.dbal-daemon.config.ts to use correct paths and health endpoint

This resolves the CI blocker where workflows running from frontends/nextjs
directory couldn't find these scripts.

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 14:40:53 +00:00
26d41a6ce8 Merge branch 'main' into copilot/test-playwright-functionality 2026-01-08 13:48:32 +00:00
copilot-swe-agent[bot]
a144295709 Remove hardcoded absolute paths, use relative paths for database fallback
Fixed issue where absolute bot paths were hardcoded in Prisma configuration:
- Changed fallback from 'file:/home/runner/work/metabuilder/metabuilder/prisma/prisma/dev.db'
  to 'file:../../prisma/prisma/dev.db' in both files
- This makes the code portable and works regardless of deployment location
- Verified dev server starts correctly and database operations work with relative path

Files modified:
- frontends/nextjs/src/lib/config/prisma.ts
- dbal/development/src/adapters/prisma/context.ts

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 13:22:49 +00:00
copilot-swe-agent[bot]
d0835f0cd4 Add E2E tests for pagination and final exports
- Created comprehensive E2E test suite for pagination components
- Added middleware index.ts for clean exports
- Tests cover PaginationControls, ItemsPerPageSelector, PaginationInfo
- Tests verify navigation, page selection, items per page, and info display
- Complete pagination workflow test included
- All code standards followed

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 05:17:13 +00:00
copilot-swe-agent[bot]
c128eb02e7 Implement authentication middleware - Phase 2.6 complete
- Created auth-middleware.ts with authenticate() and requireAuth()
- Validates session tokens via getCurrentUser()
- Checks permission levels (0-5 scale)
- Returns 401/403/500 responses appropriately
- Supports public endpoints and custom checks
- Added 21 comprehensive unit tests (all passing)
- Updated ROADMAP.md and README.md with completion status
- All 464 tests passing (100% pass rate)

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 05:15:57 +00:00
copilot-swe-agent[bot]
7e0b05047e Implement pagination UI components with tests - Phase 2.4 complete
- Created PaginationControls component with fakemui Pagination
- Created ItemsPerPageSelector component with fakemui Select
- Created PaginationInfo component for display text
- Added comprehensive unit tests (25 tests, all passing)
- Fixed 4 pre-existing test failures (orderBy format issue)
- All 443 tests passing (100% pass rate)

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 05:12:10 +00:00
copilot-swe-agent[bot]
96ee74e6ef MAJOR FIX: Correct Prisma 7 adapter usage - use factory pattern with URL config
The root cause was incorrect adapter usage:
- PrismaBetterSqlite3 is a FACTORY that expects {url: string} config
- We were incorrectly passing a Database instance directly
- This caused "Cannot read properties of undefined (reading 'replace')" error

Changes:
1. Fixed Next.js prisma.ts to pass {url} config to adapter factory
2. Fixed DBAL context.ts to use adapter factory with URL
3. Removed direct Database instantiation - let adapter handle it
4. Created absolute-path .env file with DATABASE_URL
5. Cleaned and reinstalled all dependencies to ensure version alignment
6. Added missing database columns (tenantId, config to InstalledPackage)

Result: Database operations now work! Application serves pages successfully.

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 05:01:39 +00:00
copilot-swe-agent[bot]
d919572357 Add debug logging to Prisma adapters and fix database schema issues
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 04:36:04 +00:00
copilot-swe-agent[bot]
16d01087cb feat: add comprehensive validation utilities with Zod schemas
- Create validation utilities for entity schema generation
- Support all field types (string, number, boolean, date, enum, array, object, relation)
- Implement 13+ validation rules (required, min, max, pattern, email, url, etc.)
- Add validation middleware for API routes
- Include common schema patterns (email, uuid, phone, password, etc.)
- Add 39 comprehensive unit tests covering all scenarios
- Total tests now: 414 passing (98.9% pass rate)

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 04:29:00 +00:00
copilot-swe-agent[bot]
307f53d2a2 feat: add retry, pagination, and filtering utilities with comprehensive tests
- Add retry utility with exponential backoff for transient failures
- Add pagination utilities supporting both offset and cursor-based pagination
- Add filtering and sorting utilities for API requests
- Include comprehensive unit tests (109 tests total, all passing)
- Utilities designed to work with Prisma ORM

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 04:26:18 +00:00
copilot-swe-agent[bot]
726f0bfc7b Update ROADMAP.md: Phase 2 APIs 80% complete, tests expanded
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 04:09:40 +00:00
copilot-swe-agent[bot]
3047d6b881 Add comprehensive unit and E2E tests for API endpoints
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 04:06:33 +00:00
copilot-swe-agent[bot]
878f06b8f6 Fix DATABASE_URL handling - prevent undefined error
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 03:50:58 +00:00
copilot-swe-agent[bot]
9f37692079 Fix Prisma client initialization to use SQLite adapter in production/dev
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 03:46:26 +00:00
copilot-swe-agent[bot]
825250b231 feat: Implement real API client with fetch calls and comprehensive tests
- Replace placeholder implementations with actual fetch calls to /api/v1/ endpoints
- Add ListQueryParams interface for pagination, filtering, and sorting
- Implement buildQueryString utility for query parameter encoding
- Add proper error handling and HTTP status code mapping
- Create 29 comprehensive unit tests covering all CRUD operations
- Test success cases, error cases, network failures, and query string building
- Add E2E test suite for complete CRUD flows with 50+ test scenarios
- Mock server-only module in tests for compatibility

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 03:45:14 +00:00
copilot-swe-agent[bot]
e3d4bb59f7 test: Add comprehensive Playwright E2E tests and TDD unit tests
- Add navigation E2E tests (responsive, 404 handling, accessibility)
- Add CRUD user management E2E tests with POM pattern
- Add email validation unit tests with TDD (20 tests, 100% passing)
- Add password strength validation with TDD (23 tests, 100% passing)
- Demonstrate Red-Green-Refactor cycle in practice
- All tests follow parameterized testing best practices

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 03:00:05 +00:00
copilot-swe-agent[bot]
740058a09c Fix linting errors in entity utilities and CRUD views
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 02:03:14 +00:00
copilot-swe-agent[bot]
32bd4d4a53 Implement compiler with esbuild, minification, and source maps (Phase 5)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:57:41 +00:00
copilot-swe-agent[bot]
10bec9ae20 Implement static page generation from database (Phase 4)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:56:26 +00:00
copilot-swe-agent[bot]
38b359ad74 Implement CRUD component rendering with schema-driven forms (Phase 3)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:55:50 +00:00
copilot-swe-agent[bot]
bcf93eb773 Implement dynamic package home component loading (Phase 2)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:51:44 +00:00
copilot-swe-agent[bot]
da872d32dd Implement user session and authentication context (Phase 1)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:51:04 +00:00
copilot-swe-agent[bot]
942b8792d8 fix: Resolve remaining TypeScript errors and build issues
- Added index signatures to all generated types and Create/Update input types
- Fixed Workflow description field type (null vs undefined)
- Fixed lint errors in API route (proper type checking for user object)
- Added server-only directive to compiler module
- Temporarily disabled PackageStyleLoader (needs API route instead of client-side fs access)
- Simplified main.scss to avoid SCSS @use import order issues
- TypeScript errors reduced from 39 to ~19 (mostly missing Prisma models)
- Build process now gets further (past SCSS compilation)

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:35:21 +00:00
copilot-swe-agent[bot]
af2a59ee6a fix: Resolve TypeScript errors and dependency issues
- Fixed Storybook dependency version mismatch (downgraded to 8.6.15)
- Added @types/better-sqlite3 for better-sqlite3 type definitions
- Fixed Prisma adapter import (PrismaBetterSqlite3 vs PrismaBetterSQLite3)
- Removed datasource URL from Prisma schema (Prisma 7 requirement)
- Generated DBAL types.generated.ts from Prisma schema
- Added index signatures to Update*Input types for Record<string, unknown> compatibility
- Fixed ErrorBoundary override modifiers
- Fixed Zod record schema (requires both key and value types)
- Fixed orderBy syntax in get-error-logs (array format)
- Fixed type safety in API routes (user type assertions)
- Fixed hook imports and exports
- Fixed conditional expression type guards
- Added .npmrc for legacy peer deps support

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 01:26:50 +00:00
b418fa2203 refactor(tests): simplify waitFor usage in useAuth tests 2026-01-07 16:07:50 +00:00
3d2fc07026 feat(cli): add DBAL command handlers and package management functionality
- Introduced `dbal_commands.h` for handling DBAL operations via CLI.
- Implemented `package_commands.cpp` and `package_commands.h` for package management, including listing, running scripts, and generating packages.
- Created `lua_runner.cpp` and `lua_runner.h` to execute Lua scripts in a secure sandbox environment.
- Added `http_client.cpp` and `http_client.h` for making HTTP requests to a specified base URL.
- Updated `main.cpp` to initialize the HTTP client and dispatch commands based on user input.
2026-01-07 15:28:19 +00:00
42446ef255 feat: Update package schemas and scripts to support JSON-based lifecycle hooks
- Added `jsonScript` property to metadata schema for JSON script entry points.
- Refactored `generate-package.ts` to replace Lua scripts with JSON scripts for lifecycle hooks.
- Updated test generation to use JSON format for metadata validation.
- Modified documentation and comments to reflect the transition from Lua to JSON scripting.
- Adjusted Storybook configuration and mock data to align with new JSON script structure.
- Renamed relevant files and references from Lua to JSON for consistency across the project.
2026-01-07 15:25:45 +00:00
76a667f259 Remove DBAL and package command implementations
- Deleted dbal_commands.h and package_commands.h files, removing DBAL command handlers and package command definitions.
- Removed package_commands.cpp, which contained the implementation of package commands including list, run, and generate functionalities.
- Eliminated lua_runner.cpp and lua_runner.h, which provided the Lua script execution environment and related functionalities.
- Removed main.cpp and http_client files, which were responsible for the CLI entry point and HTTP client interactions.
2026-01-07 14:57:40 +00:00
9284b9a67b Refactor function definitions across multiple packages to remove luaScript references
- Updated functions.json files in theme_editor, ui_auth, ui_footer, ui_header, ui_home, ui_intro, ui_level2, ui_level3, ui_level4, ui_level5, ui_level6, ui_login, ui_pages, ui_permissions, user_manager, and workflow_editor packages.
- Removed luaScript entries from function definitions, retaining only category and other relevant metadata.
- Adjusted documentation in prisma/README.md to remove LuaScript entity reference.
2026-01-07 14:54:33 +00:00