Conversation
docs: add release badge to README
ci: setup automated tests and QA-ready features
Fix mobile menu and refactor Home page layout
Add Agent Developer Context documentation
…gic and add documentation generation script
…tion; streamline environment variable setup and testing instructions
…ns in documentation
…sting ones. Added 'jsdoc', 'wait-on', and various type definitions. Updated several packages including ESLint-related dependencies and added new modules for improved functionality and compatibility.
ci(docs): stabilize CI pipeline and agent developer context
Sawaka Docs on GitHub Pages
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 6 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
This is the final PR Bugbot will review for you during this billing cycle
Your free Bugbot reviews will reset on March 8
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| return ( | ||
| <Link | ||
| key={artisan._id} | ||
| href={`/artisans/${artisan._id}?from=reseau`} |
There was a problem hiding this comment.
Hardcoded ?from=reseau breaks standalone artisans page navigation
Medium Severity
The ArtisansPage component is used in two contexts: directly at /artisans and embedded inside ReseauPage at /reseau. However, the link href hardcodes ?from=reseau for every artisan card. When a user visits /artisans directly and clicks an artisan, the detail page's back button (handleBack) sees from === "reseau" and navigates to /reseau instead of /artisans, which is incorrect and disorienting.
Additional Locations (1)
| image: "/images/tool_project.jpeg", | ||
| hasDetailPage: false, | ||
| }, | ||
| ]; |
There was a problem hiding this comment.
Duplicated mock project data across two files
Low Severity
The IDS object and projets array (with identical auteur, id, ville, titre, categorie, image, hasDetailPage fields) are duplicated verbatim in FeaturedProjects.tsx and app/projets/page.tsx. This means any update to the mock data (e.g., adding a project or fixing a title) needs to be applied in both places, risking inconsistency.
Additional Locations (1)
| push: | ||
| branches: | ||
| - main | ||
| - qa |
There was a problem hiding this comment.
Docs workflow deploys QA to production Pages
Medium Severity
The workflow comment states "Production documentation — GitHub Pages only from main" but the trigger includes both main and qa branches. This means pushes to qa deploy documentation to the production GitHub Pages site, potentially publishing unstable or pre-release documentation to the public URLs referenced in the PR description.
| <h1>Sawaka Documentation</h1> | ||
| <ul> | ||
| <li><a href="/jsdoc/">JSDoc</a> — Code-level API reference</li> | ||
| <li><a href="/api-docs/">Swagger UI</a> — Interactive API documentation</li> |
There was a problem hiding this comment.
Docs index uses absolute paths broken on GitHub Pages
High Severity
The generated site/index.html uses absolute paths (/jsdoc/ and /api-docs/) for its links. GitHub Pages project sites are served at a subpath (https://bond52.github.io/sawaka/), so these absolute paths resolve to https://bond52.github.io/jsdoc/ and https://bond52.github.io/api-docs/ — both 404s. The links need to be relative (e.g., ./jsdoc/ and ./api-docs/).
| return ( | ||
| <html lang="fr"> | ||
| <body> | ||
| {children} |
There was a problem hiding this comment.
Removed metadata export leaves app without HTML title
Medium Severity
The metadata export (containing title: "Sawaka" and description) was removed from layout.tsx and not re-added here or in any other layout/page file. The app now has no HTML <title> or meta description, degrading SEO and leaving a blank or default browser tab title.
| process.env.NEXT_PUBLIC_API_BASE || | ||
| (typeof window !== 'undefined' && window.location.hostname === 'localhost' | ||
| ? 'http://localhost:5000' | ||
| : 'https://ecommerce-web-avec-tailwind.onrender.com'); |
There was a problem hiding this comment.
Operator precedence causes wrong API URL in production
High Severity
The API_URL expression has an operator precedence bug. Because || binds tighter than ?:, the expression parses as (process.env.NEXT_PUBLIC_API_BASE || condition) ? 'http://localhost:5000' : fallback instead of the intended process.env.NEXT_PUBLIC_API_BASE || (condition ? ... : ...). When NEXT_PUBLIC_API_BASE is set (e.g. in production), the entire ternary condition is truthy, so API_URL resolves to 'http://localhost:5000' — never using the actual env var value. Login requests would hit localhost instead of the real API.


🚀 Pull Request — Sawaka
🎯 Objective
Promote validated changes from the QA branch to main after successful CI checks and deployments.
This PR includes:
Stable CI pipeline
Automated documentation publishing via GitHub Pages
Governance and contribution tooling alignment
🔧 Type of Changes
🧪 Tests Performed
GitHub Actions CI (lint, build, tests)
Documentation build:
JSDoc generation
Swagger UI static generation
GitHub Pages deployment via CI
All checks passed successfully on the QA branch.
📄 Documentation
Public documentation is now available via GitHub Pages:
JSDoc: https://bond52.github.io/sawaka/jsdoc/
Swagger UI: https://bond52.github.io/sawaka/api-docs/
📎 Notes
This PR is part of the normal QA → Main promotion flow
No breaking changes introduced
Documentation is generated at build time (not committed)
Note
Medium Risk
Medium risk due to new CI/CD workflows (Pages deploy, service containers, multi-stage test runners) and broad UI/layout changes that affect navigation and app chrome across all pages.
Overview
Introduces a full GitHub Actions pipeline (
.github/workflows/ci.yml) that runs backend Jest tests, Postman/Newman API checks, Next.js lint/build, Playwright E2E, and backend doc generation; adds Pages workflows to publish JSDoc + Swagger UI and QA-only doc validation/artifacts.Refreshes the frontend shell and key pages:
app/layout.tsxnow wraps all pages with a newHeader/Footer, the home page is replaced with a hero + project explorer + featured projects/products, and new UX is added forRéseauswitching (artisans vs fournisseurs), artisan list search + “back” origin handling, and a new mock project detail page.Also adds repo governance/devex files (ESLint config, changelog, funding + issue templates, backend README), updates contributing/docs guidance, and gitignores generated backend docs (while adding a Swagger UI static output under
backend-api/docs/api-docs).Written by Cursor Bugbot for commit 06e84a2. This will update automatically on new commits. Configure here.