Commit Graph

241 Commits

Author SHA1 Message Date
alexpolo1
3ab5e8cf5e fix: resolve open smart package issues 2026-08-13 23:58:36 +02:00
alexpolo1
c6ca27dd22 feat: persist support tickets for Codex worklist 2026-08-13 14:29:15 +02:00
alexpolo1
340d15bf78 fix: align support tickets with osTicket API 2026-08-13 13:37:10 +02:00
alexpolo1
9c00074327 feat: add image attachments to support feedback 2026-08-13 13:28:29 +02:00
alexpolo1
ddc52ddc91 fix: cap quote PDFs and add compact recovery 2026-08-13 13:02:16 +02:00
Alex
d5f65f74d4 feat: mobil tømrerflow og Codex CLI-generering (#8)
Flyt brugerrettet indholdsgenerering til Codex CLI, forbedr mobilflowet og ret CI-miljøets afhængigheder og testkonfiguration.
2026-08-13 11:47:14 +02:00
Alex
faffd89fe4 Merge pull request #7 from alexpolo1/agent/smartpakke-integritet
feat: verificerede SmartPakker til tømrerens tilbudsflow
2026-08-13 10:39:43 +02:00
alexpolo1
11ad6b7f0b feat: enforce verified smart package catalog 2026-08-10 12:38:52 +02:00
alexpolo1
87d9c7bd82 test: verify mobile access notes field 2026-07-08 13:06:16 +02:00
alexpolo1
fe4f11fe32 ci: survive artifact quota, update actions, clean lint warnings
The last CI run failed only because GitHub artifact storage quota was
exhausted: backend tests and frontend build were green but their
upload-artifact steps failed the jobs.

- Mark all artifact uploads continue-on-error and cut retention to 3
  days (deploy workflows kept artifacts up to 30 days, which is what
  filled the quota)
- E2E job builds the frontend itself instead of downloading the
  frontend-build artifact, so it no longer depends on artifact storage
- Bump actions/checkout v4->v7, setup-node v4->v6, upload-artifact
  v4->v7, download-artifact v4->v8 (Node 20 runtime deprecation) and
  CI Node 18 (EOL) -> 22 to match production
- Fix all frontend lint warnings: remove unused imports/state and the
  dead Stepper-based form UI in SmartPackageForm (renderStepContent,
  parseAndAddMaterialsFromDescription were unreferenced), disable
  exhaustive-deps where the effect is intentionally scoped
2026-07-08 13:05:28 +02:00
alexpolo1
581204c235 fix: persist geometry and smart package before leaving flow steps
Both steps relied on a debounced 5-second autosave as the only path
that wrote to the database. Continuing to the next step within those
5 seconds unmounted the component, cancelled the pending timer and
silently lost the data: Final Review then showed 0 m dimensions and
'Tagtype: unknown', and package materials/tasks were missing after a
project reload.

- EnhancedGeometry: handleNext now awaits handleGeometryCalculation
  and blocks navigation if the save fails; the continue button shows
  'Gemmer geometri...' while saving
- InlineSmartPackage: 'Gem Smart Pakke' and 'Naeste: Final Review' now
  await autoSavePackageData (which syncs materials/rentals/status)
  instead of only updating parent session state; autoSavePackageData
  reports success; selecting a package marks the step as interacted so
  the periodic autosave arms correctly
- InlineSmartPackage: rentals read and similar-experience lookup use
  the correct /api/customer-projects/projects/{id}/... paths

Found by driving five different quote flows end to end: three runs
happened to win the autosave race, two lost it and persisted nothing.
2026-07-08 07:57:36 +02:00
alexpolo1
1c2ec2b1fc fix: correct rentals and similar-experience API paths
GET rentals used /api/customer-projects/{id}/rentals but the backend
route lives at /api/customer-projects/projects/{id}/rentals, so saved
rental lines were never loaded back into the flow. The
similar-experience lookup used /api/customer/projects/... and always
404'ed, so historical experience data never appeared in the smart
package step.
2026-07-08 07:57:19 +02:00
alexpolo1
7ed6494762 fix: correct design issues across desktop and mobile
- Scope global .materials-header rule to used-materials so the
  Materialer page header stacks correctly on mobile
- Collapse system status indicator to a compact dot so it no longer
  covers content
- Remove redundant current-view chip from header navigation
- Scope FinalReview button styles and switch submit gradient from red
  to green so the danger color no longer leaks into project creation
- Remove duplicate title and category chip on smart package cards
- Stop absolute positioning of logout button that clipped the logo
2026-07-08 07:32:23 +02:00
alexpolo1
cc9fc941a6 test: cover mobile order readiness flow 2026-07-07 22:01:03 +02:00
alexpolo1
4da87de9ae fix: remove frontend hook build warnings 2026-07-07 21:57:40 +02:00
alexpolo1
c5fd46eba0 feat: add mobile order readiness checks 2026-07-07 21:55:54 +02:00
alexpolo1
46c0025e49 feat: add AI usage and quote output polish 2026-07-07 21:30:34 +02:00
alexpolo1
a6a643fd46 feat: add mobile order field workflow 2026-07-07 21:30:28 +02:00
alexpolo1
ca4ce44bef feat: improve roof quote readiness 2026-07-07 21:30:23 +02:00
alexpolo1
784066af55 fix(ci): limit production deploy trigger 2026-07-05 08:21:00 +00:00
alexpolo1
01ad8f4a49 feat: consolidate ordrestyring quote workflow 2026-07-05 08:10:59 +00:00
alexpolo1
83a5af07d8 fix: strengthen tilbudsgivern flow validation and automation
- tighten carpenter AI e2e success criteria to require real ordrestyring submission

- improve login field usability (labels/placeholders/autocomplete)

- add final review gating for missing core quote data

- normalize window task naming in carpenter API fixtures
2026-05-13 09:25:51 +00:00
alexpolo1
002e05bfc7 fix(ordrestyring): close hours-without-case gap and harden local-first sync 2026-04-08 05:56:01 +00:00
alexpolo1
d081763d20 fix: stabilize ordrestyring sync parsing and simulation hours 2026-04-06 07:44:09 +00:00
alexpolo1
4695e28088 feat: add ordrestyring simulation runner 2026-04-05 20:05:07 +00:00
alexpolo1
7395d4d290 fix: stabilize ordrestyring sync layers 2026-04-05 19:47:47 +00:00
alexpolo1
10d94c7ff1 feat: persist carpenter workflow status and price freshness 2026-03-29 12:27:06 +00:00
alexpolo1
3b7772c697 chore: ignore test data and checkpoint current changes 2026-03-04 10:08:49 +00:00
alexpolo1
653e364b1e chore: reorganize docs - move md files to correct locations
- Move root-level status/feature/summary MDs into docs/ subdirs
- Convert .txt documentation files to .md format
- Tests-related MD moved to tests/
- Root now only contains README.md, CLAUDE.md, GEMINI.md
2026-02-28 18:37:46 +00:00
alexpolo1
888e833de6 chore(docs): move top-level .md files to docs/ for better organization 2026-02-28 18:01:12 +00:00
alexpolo1
bbb75ccce2 feat: Add Advanced Dashboard and perform repo cleanup
This commit introduces a new Advanced Dashboard feature, which provides enhanced analytics and system health monitoring.

Additionally, this commit includes a general repository cleanup, which consists of:

- Removal of a duplicate  file from the root directory.
- Addition of temporary report and documentation files to .
- Relocation of several test files from the root to the  directory.
- Staging of various other modified files that were previously uncommitted.

The new Advanced Dashboard feature includes:
-  and  for the UI.
-  for the backend API.
-  for API documentation.

New tests for smart packages and autosave functionality have also been added.
2026-02-28 17:38:23 +00:00
Alex
5768f2765d Merge pull request #6 from alexpolo1/copilot/check-current-codebase
Fix React.memo() syntax error in EnhancedGeometry.js
2026-01-25 12:20:15 +01:00
copilot-swe-agent[bot]
ea8c40a90a Fix syntax error in EnhancedGeometry.js - add missing closing parenthesis for React.memo()
Co-authored-by: alexpolo1 <14327609+alexpolo1@users.noreply.github.com>
2026-01-25 11:07:29 +00:00
copilot-swe-agent[bot]
3a28de0229 Initial plan 2026-01-25 11:01:49 +00:00
Alex
9469a896d3 Merge pull request #1 from alexpolo1/copilot/identify-slow-code-improvements
Optimize database operations and async workflows for 5-20x performance gains
2026-01-25 12:01:05 +01:00
Alex
03071eb7b0 Merge pull request #2 from alexpolo1/copilot/secure-secret-handling
Security: Remove hardcoded JWT secrets and client-side refresh token storage
2026-01-25 11:57:25 +01:00
Alex
db1d3a51b9 Merge pull request #4 from alexpolo1/claude/create-branch-Hy5jt
Claude/create branch hy5jt
2026-01-25 11:53:12 +01:00
Alex
5ae79376fa Merge pull request #5 from alexpolo1/claude/new-branch-Hy5jt
feat: Add comprehensive CI/CD pipelines and fix lint errors
2026-01-25 11:51:34 +01:00
Claude
1ed77551a0 feat: Add comprehensive CI/CD pipelines and fix lint errors
CI/CD Pipelines:
- ci.yml: Enhanced with lint, unit tests, E2E tests, security scan
- deploy-test.yml: Test environment deployment workflow
- deploy-prod.yml: Production deployment with backup, rollback, smoke tests

Test Fixes:
- supportTickets.test.js: Fix field names (topic_id, priority_id)

Lint Fixes:
- CalendarGrid.js: Mark unused employeeTypeFilter
- CustomerSearch.js: Mark unused setTaskType
- EnhancedGeometry.js: Mark unused variables
- InlineSmartPackage.js: Add eslint-disable for unused handlers
- ProjectFlow.js: Remove unused imports and handlers
- WhosFreeWidget.js: Add eslint-disable for useEffect
- BackupImport.js: Remove unused TextField import
2026-01-25 10:47:16 +00:00
Claude
860babdbad fix: Resolve ESLint warnings in frontend components
- CalendarGrid.js: Mark unused employeeTypeFilter, remove from useMemo deps
- CustomerSearch.js: Mark unused setTaskType
- EnhancedGeometry.js: Mark unused backX and buildingLength variables
- InlineSmartPackage.js: Add eslint-disable for unused drag/drop handlers
- ProjectFlow.js: Remove unused imports, mark unused handler functions
- WhosFreeWidget.js: Add eslint-disable for useEffect dependency
- BackupImport.js: Remove unused TextField import

All frontend builds now pass with CI=true
2026-01-25 10:39:51 +00:00
Claude
166036bb83 feat: Enhance production CI with unit tests and security scanning
- Add dedicated unit-tests job with MariaDB service container
- Add security-scan job with npm audit and secrets detection
- Build now depends on passing unit tests and security scan
- Add test coverage artifact upload
- Add quotes endpoint to API verification
- Add test screenshots artifact on failure
- Update deployment summary with all job statuses
2026-01-25 09:26:07 +00:00
Claude
e688c93c5c fix: Update support ticket tests to match API field names
- Change topicId/priorityId to topic_id/priority_id (snake_case for osTicket API)
- Update error message assertion to match actual API response extraction
2026-01-25 09:21:44 +00:00
Claude
0e66f81693 feat: Add comprehensive CI/CD pipelines for test and production
CI Workflow (ci.yml):
- Lint and type check for frontend/backend
- Backend unit tests with MariaDB service container
- Frontend production build
- E2E Playwright tests on pull requests
- Security vulnerability scanning
- CI summary job for status reporting

Test Deployment (deploy-test.yml):
- Triggers on push to develop branch
- Manual workflow dispatch support
- SSH deployment with release management
- Health checks and API smoke tests
- Full E2E test suite on test environment

Production Deployment (deploy-prod.yml):
- Triggers on push to main or version tags
- Pre-deployment backup creation
- Atomic symlink deployment for zero-downtime
- Graceful PM2 reload
- Automatic rollback on verification failure
- Production smoke tests
- Deployment summary reporting

Documentation:
- Updated DEPLOYMENT-PIPELINE.md with complete guide
- Server directory structure documentation
- Required secrets documentation
- Rollback procedures
- Troubleshooting guide
2026-01-25 08:50:49 +00:00
Alex
de1aa85b3a Merge pull request #3 from alexpolo1/claude/create-branch-Hy5jt
docs: Update README with current architecture and tech stack
2026-01-25 09:47:43 +01:00
Claude
ceaa6039fa docs: Update README with current architecture and tech stack
- Update tech stack from PostgreSQL to MariaDB/MySQL
- Update port from 3000/3001 to unified server port 4032
- Add Smart Packages system (15 carpenter packages)
- Add 7 roof types documentation
- Add Ordrestyring GraphQL integration info
- Update project structure to reflect current state
- Add comprehensive API endpoints documentation
- Update docs/README.md with documentation index and architecture diagram
2026-01-25 08:46:36 +00:00
alexpolo1
a03b6df348 feat: Crew scheduling system (Phase 1-3) - 8.5/10 rating
Phase 1: Quick Wins
- Calendar default tab, simplified 3-option filters
- Show all employees including free ones

Phase 2: Core Functionality
- POST /api/calendar/allocate endpoint
- AllocationModal component with validation
- Integration with Ordrestyring GraphQL API

Phase 2.5: UX Polish
- Prominent employee names with type badges
- NotificationToast system for success/error feedback
- Auto-refresh after allocation
- Removed confusing employee-type filter

Phase 3: Enhanced UX
- WhosFreeWidget with tabs (I dag | I morgen | Denne uge)
- Job names displayed on busy employees
- Quick-allocate with employee pre-selection
- Fixed undefined name sorting bugs

Lars validation: 8.5/10 - 'Replaces whiteboard for 90% of planning'
Real impact: 97% faster than manual process (5s vs 2-3 min)
2026-01-22 21:59:34 +00:00
alexpolo1
94ce1975c9 feat: upgrade Claude Code with everything-claude-code configuration collection
Install comprehensive production-ready configurations from affaan-m/everything-claude-code:
- 9 specialized agents (planner, architect, tdd-guide, code-reviewer, security-reviewer, etc.)
- 14 slash commands (/tdd, /plan, /e2e, /code-review, /build-fix, /learn, /verify, etc.)
- 8 always-follow rules (security, coding-style, testing, git-workflow, performance, etc.)
- 11 workflow skills (tdd-workflow, backend-patterns, frontend-patterns, continuous-learning, eval-harness, etc.)

Changes:
- Add 5 new commands: checkpoint, eval, learn, orchestrate, verify
- Add 4 new skills: continuous-learning, eval-harness, strategic-compact, verification-loop
- Restructure skills from flat .md files to directories with SKILL.md structure
- Remove unused MCP server config and templates from .continue/mcpServers/
- Remove deprecated .claude/mcp-servers.json

Source: https://github.com/affaan-m/everything-claude-code
Battle-tested over 10+ months of production use by Anthropic hackathon winner.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 19:36:57 +00:00
alexpolo1
e00de36a38 docs: Add comprehensive integration test report and status documentation 2026-01-21 16:49:30 +00:00
alexpolo1
0905469c13 feat: Complete Smart Pakker & Opgaver unified integration with test data and validation 2026-01-21 16:48:56 +00:00
alexpolo1
fe93881c3b docs: add port management guide for permanent startup fixes 2026-01-21 07:57:10 +00:00