Commit Graph

58 Commits

Author SHA1 Message Date
null f1823bcc4b fix: rename asset files to remove spaces (closes #67) 2026-05-17 18:08:25 -05:00
null 1437b2af07 fix: 10 bug fixes from code review (batch 0.6.5)
- #63: Fix industry.href undefined → use industry.id for navigation
- #50: Fix sanitized scope error in catch block (let before try)
- #58: Footer.jsx: convert all internal <a href> to <Link to>
- #61: Textarea.jsx: fix className interpolation (quotes → backticks)
- #59: About.jsx: convert CTA <a href> to <Link to>
- #60: Support.jsx: convert Contact button <a href> to <Link to>
- #62: Badge.jsx: text-foreground → text-text
- #64: Support.jsx: hover:bg-navy-darker → hover:bg-primary-navy-dark
- #65: Server: move timeoutMiddleware before catch-all routes
- #66: Contact.jsx: convert self-referencing <a href> to <Link to>
2026-05-17 18:03:55 -05:00
null 4f3e20b7a0 fix: dead code cleanup, timeout middleware, Zoho error handling (closes #53, #54, #55, #56, #57)
- Delete broken barrel exports ui/index.jsx and ui/all.jsx (#53)
- Remove duplicate QueryClient instance and dead queryClient.js (#55)
- Remove unused queryClient import/export from api.js (#55)
- Move timeoutMiddleware before catch-all routes so it actually fires (#54)
- Fix async error handling in forwardToZoho - add .catch() (#56)
- Add ZOHO_CLIENT_ID to credential guard, normalize defaults to null (#57)
(batch 0.6.4)
2026-05-17 17:46:54 -05:00
null 9cdc299ade fix: undefined Tailwind classes, SPA navigation, phone/email links (closes #51, #52)
- Replace all undefined shadcn/ui Tailwind classes with correct config values
  (text-muted-foreground→text-muted, text-card-foreground→text-text,
   bg-secondary→bg-section-alt, ring-ring→ring-primary-navy, etc.)
- Replace text-cyan/bg-cyan with text-primary-cyan/bg-primary-cyan
- Convert all internal <a href> to React Router <Link to> for SPA navigation
- Remove self-referencing /contact button on Contact page
- Add tel: links for phone numbers, mailto: links for emails in
  Contact.jsx and Support.jsx hero badges and info sections
- Fix Header.jsx mobile menu button hover:text-cyan→hover:text-primary-cyan (batch 0.6.3)
2026-05-17 17:42:03 -05:00
null b5170caf9d refactor: full-bleed section backgrounds with centered content (closes #48) 2026-05-17 17:11:29 -05:00
null 5d67149a51 feat: add JointLogoWhite trust bar + selective service detail images (closes #48) 2026-05-17 17:01:08 -05:00
null 32a2b905a1 fix: add missing CardDescription component and import (batch 0.6.2) 2026-05-17 16:39:54 -05:00
null 762c9d899d fix(docker): slim runner stage — native deps in separate build stage (567MB → 248MB) 2026-05-17 16:34:36 -05:00
null b428348a4c docs: close issues #45 #46 #47 — already implemented in earlier batches (batch 0.6.2) 2026-05-17 16:17:54 -05:00
null 56bdf07216 fix: close issues #12 #15 #17 #18 — CSP nonce, API retry, input debounce, caching verified (batch 0.6.1) 2026-05-17 16:10:10 -05:00
null ca67974c5f fix(docker): add python3/make/g++ for better-sqlite3 native build (batch 0.6.8) 2026-05-17 15:48:43 -05:00
null e11aefd184 fix: audit issues #10 #14 #16 #19 — CORS errors, JSON middleware, Zoho fields, noValidate (batch 0.6.8) 2026-05-17 15:46:59 -05:00
null 80969e5aee feat: merge 8x8 page into UCaaS/CCaaS service pages, remove standalone route (batch 0.6.6) 2026-05-17 15:44:27 -05:00
null 4845c7ab5f feat(ui): industry icons bigger with color and contrast (batch 0.6.5) 2026-05-17 15:41:22 -05:00
null 5807582df1 feat: hero left-alignment + about section content fixes (batches 0.6.3, 0.6.4)
- Hero text left-aligned on all screen sizes (Issue #33)
- Hero image always visible, grid breakpoint md instead of lg
- Spacing refactored from margin to gap utils
- About: veteran-founded framing, mission paragraph (Issue #34)
- About: vendor-neutral consulting in expertise (Issue #36)
- About: image sizing max-h-96 object-cover (Issue #37)
- Version bump 0.5.6 → 0.5.7
2026-05-17 15:33:30 -05:00
null eb76e1fadc feat(cisco): add Cisco partnership signals across site (batch 0.6.2) 2026-05-17 15:28:12 -05:00
null 25ab4c7986 fix(server): Zoho token endpoint hardening + version bump to 0.5.4 (batch 0.6.0) 2026-05-17 15:18:24 -05:00
null c4d40c39ba feat(ui): nav active-state styling for header and mobile nav (batch 0.6.0) 2026-05-17 15:15:00 -05:00
null 0e89bc2c0a fix: remove FUTURE.md and HISTORY.md from git tracking — agent-only docs, not for repo 2026-05-17 15:07:50 -05:00
null 71c8129046 feat(ui): footer + contact improvements, CTAs everywhere, gitignore update (batch 0.5.6)
- Footer: email, phone, Request Consultation CTA
- Home: CTA links added to Trust Signals, Services, Why Queue North
- Contact: hero CTA, prominent phone/email
- Support page updates
- Version bumped to 0.5.3
- FUTURE.md and HISTORY.md now tracked in git
- .gitignore updated to allow FUTURE.md and HISTORY.md
2026-05-17 15:07:28 -05:00
null 5b0a509e70 fix(zoho): P0/P1 criticals — credential check, response validation, timeout, null normalization (Neo N1) 2026-05-17 15:01:04 -05:00
null a963dc4dcc feat(ui): why queue north section refinement (batch 0.5.5) 2026-05-17 14:56:10 -05:00
null 940cd94ba3 feat(services): business outcomes rewrite (batch 0.5.4)
- Section title: Our Services → What We Handle
- Subtitle: outcome-focused language
- Added homeDesc field to all 7 services in data/services.js
- Service cards now show icon + homeDesc + shortDesc
- lucide-react icons per service (MessageCircle, Users, etc)
- B2B professional card layout with icon containers
- Service detail pages unchanged
2026-05-17 14:49:01 -05:00
null 7c145bc8ca fix(security): Hudson remediation + batch 0.5.3 trust signals
- Clean up docker-entrypoint per Hudson review (issue #4):
  - Remove chmod 777 → chown nodejs:nodejs
  - Remove hardcoded su-exec, add root-detection logic
  - Entry point unused but now safe if re-enabled
- Batch 0.5.3: Trust signals section (Scarlett)
  - 8x8 Certified Partner card (cert #25432)
  - Veteran Owned card (VCERT #12847)
  - 25+ Years Experience metric
  - 99.99% uptime, <15m response, 24/7 support, 100% satisfaction
  - Mobile-first, B2B professional tone
2026-05-17 14:45:55 -05:00
null 7d476f36e8 fix(security): audit fixes #4 #6 #10 + hero rewrite (batch 0.5.2)
- #4: Replace su-exec with USER nodejs in Dockerfile (P0)
- #6: Add UNIQUE constraint on leads.email with migration (P1)
- #10: Consistent NULL handling for optional fields (P1)
- Hero section rewrite: B2B value proposition, prominent 8x8 badge
- Clean up .bak file left by agent
2026-05-17 14:44:34 -05:00
null 851759ae5e fix: P0 owner feedback — contact info, phone, support redirect (#25, #26, #27)
- Remove fake info@queuenorth.com, replace with contact form callout (fixes #25)
- Add phone (906) 482-6616 to Contact, Support, and Footer (fixes #26)
- Add Zoho support center link to Support page (fixes #27)
2026-05-17 14:35:29 -05:00
null 54dc893ec5 chore: bump version to 0.5.1 2026-05-17 14:33:54 -05:00
null c48cf89428 fix: P0 owner feedback — header & nav fixes (#24, #28, #29, #42)
- Remove stray 'Primary' heading from mobile menu (fixes #24)
- Logo links to homepage, increased size h-10/h-11 (fixes #28, #42)
- Nav links visible with text-white/70 + active underline state (fixes #29)
- Mobile logo and text size increased for readability (fixes #42)
2026-05-17 14:33:41 -05:00
null 796d372e79 chore: add docker-push.sh, docker-test.sh, npm scripts, bump v0.5.0
- docker-push.sh: build + tag + push dev image to Forgejo registry
- docker-test.sh: rebuild and run container for local testing
- npm scripts: docker:push and docker:test
- Version bump to 0.5.0 (Phase 5)
2026-05-14 01:18:44 -05:00
null c4985e37bc feat: Phase 5 SPA fixes, mobile menu, assets, and redesign planning
- Fix BrowserRouter → RouterProvider (routes were disconnected)
- Strip TS generics from .jsx files (Card, Badge, Dialog, Input, Textarea)
- Fix useToast import from sonner (Contact, Support)
- Merge mobile Sheet into Header (DialogTrigger outside Dialog)
- Add SPA catch-all route for client-side navigation
- Add CSP style-src for Google Fonts
- Copy all image assets to public/ (were 404)
- Replace placeholder logo with real Queue North logo
- Fix SheetContent positional CSS + install tailwindcss-animate
- Add visually hidden SheetTitle for accessibility
- Update README and FUTURE.md with Phase 5 redesign batches
- Add review.md (redesign assessment, exempt from git)
2026-05-13 22:07:35 -05:00
null c2d5873f08 feat: error handling hardening, 404 catch-all, health check DB test, request timeout, global error handlers (v0.4.8) 2026-05-13 19:59:19 -05:00
null 7257633d94 feat: rate limiting, helmet security headers, CORS, trust proxy, Docker env vars (v0.4.7) 2026-05-13 18:37:32 -05:00
null 39ee1fe537 feat: structured logging with timestamps, request logging, and submission details (v0.4.6) 2026-05-13 18:31:52 -05:00
null 6bfd804313 feat: Zoho CRM forwarding layer with OAuth2 token management (v0.4.6) 2026-05-13 18:28:56 -05:00
null 4ac0fa250d feat: server-side validation + input sanitization (v0.4.5) 2026-05-13 18:18:07 -05:00
null ee5af44b58 docs: update README phase 4 checkmark for validation 2026-05-13 18:10:16 -05:00
null 931c9a9095 feat: client-side form validation + Sonner feedback (v0.4.4) 2026-05-13 18:10:04 -05:00
null 21b5418461 docs: update README phases with checkmarks for completed work 2026-05-13 18:03:03 -05:00
null 71347d070b chore: bump version to 0.4.3 (SQLite persistence verified) 2026-05-13 04:14:07 -05:00
null 87203bcded fix: consolidate legacy CSS, fix dynamic routes, convert anchors to Link components
- Remove duplicate App.css, consolidate into index.css as single Tailwind entry point
- Move maxWidth.container to tailwind.config.js theme extension
- Update App.jsx import from ./App.css to ./index.css
- Fix router.jsx to use dynamic :slug routes for services and industries
- Fix ServiceDetail.jsx and IndustryDetail.jsx to use useParams()
- Convert Header.jsx and MobileNav.jsx <a> tags to React Router <Link> components
- Add scripts/docker-test.sh for persistence verification
- Add project-requirements.md
2026-05-13 00:29:45 -05:00
null a7fa18ec63 chore: add .learnings/ to gitignore 2026-05-12 02:50:04 -05:00
null f03229dd50 feat: Phase 3 Batch 4 — inner pages layout system with consistent hero/card/CTA pattern (v0.3.4) 2026-05-12 02:45:25 -05:00
null 35aaa639ec feat: Phase 3 Batch 3 — header/footer/mobilenav polish + fix Button.jsx TS generics (v0.3.3)
- Sticky dark navy header with clean nav and CTA
- Reorganized MobileNav with Primary/Services/Industries sections
- Dark navy footer with cyan accent headers
- Added navy-light color token
- Fixed Button.jsx: removed TypeScript generic syntax that broke esbuild
- Replaced asChild Button usage with styled anchor tags
2026-05-12 02:39:35 -05:00
null 76aa71691f feat: Phase 3 Batch 2 — home page redesign with hero, trust bar, services, CTA (v0.3.2) 2026-05-12 02:31:23 -05:00
null 287e2b79f6 feat: Phase 3 Batch 1 — theme tokens, spacing scale, container width (v0.3.1) 2026-05-12 02:26:18 -05:00
null 0b7da4d237 chore: bump to v0.3.0 — Phase 3 Visual Overhaul baseline 2026-05-12 02:15:36 -05:00
null ba0d039cdc fix: reduce Docker image from 331MB to 215MB — remove duplicate node_modules layer
v0.2.2: Removed COPY --from=builder node_modules from runner stage.
The full dev+prod modules (116MB) were being copied as a permanent
Docker layer, then npm ci --omit=dev installed a separate prod-only
set on top. Now only the prod install runs, cutting 116MB.
2026-05-12 02:04:52 -05:00
null 1f3e3864f9 feat: Docker batch 0.2.1 — production-ready containerization
- Multi-stage Dockerfile with non-root nodejs user
- Healthcheck using Node 20 built-in fetch (no wget)
- docker-entrypoint.sh: root permission fix, then exec to nodejs
- server/db.js: deferred SQLite init for Docker volume permissions
- docker-compose.yml with named volumes for persistence
- .dockerignore and .env.example added
- README updated with Docker usage section

Security reviewed by Private Hudson. All blockers resolved.
2026-05-12 01:57:55 -05:00
null c83dc08660 feat: complete phase 2 layout rebuild 2026-05-12 01:18:57 -05:00
null d2bb91fd72 docs: track overhaul plan 2026-05-12 01:10:34 -05:00