chore: add latest features#871
Merged
Merged
Conversation
phoebus-84
commented
Jul 2, 2026
Collaborator
- chore: 🔧 new publish workflow also for tchibo branch (chore: 🔧 new publish workflow also for tchibo branch #809)
- style: 🎨 lighter markdown editor (style: 🎨 lighter markdown editor #763)
- feat: ✨ links to projects now lead to new products page (feat: ✨ links to projects now lead to new products page #813)
- feat: ✨ improve UX for unauthenticated users (feat: ✨ improve UX for unauthenticated users #814)
- fix: 🐛 project images editing (fix: 🐛 project images editing #817)
- fix: 🐛 qr code disappear for projects that have it and new tabs mapping for url params (fix: 🐛 qr code disappear for projects that have it and new tabs mapping for url params #818)
- feat: ✨ add recyclability and repairability filters (feat: ✨ add recyclability and repairability filters #821)
- feat: interfacer gui big rework phase 1 (feat: interfacer gui big rework #825)
- fix: 🐛 migrate to mominatim for location autocomplete and lookup (fix: 🐛 migrate to mominatim for location autocomplete and lookup #834)
- feat(dpp): ✨ dedicated DPP detail page with prototype-matching UI (feat(dpp): ✨ dedicated DPP detail page with prototype-matching UI #835)
- feat(layout): ✨ show top bar and sidebar for unauthenticated users (feat(layout): ✨ show top bar and sidebar for unauthenticated users #836)
- fix(nav): 🐛 Designs links to /designs, fix active state catch-all (fix(nav): 🐛 Designs links to /designs, fix active state catch-all #837)
- feat: ✨ wire sorting orderBy and distinctPrimaryAccountableCount from backend (feat: ✨ wire sorting orderBy and distinctPrimaryAccountableCount from backend #838)
- feat(dpp): ✨ redesign DPP tab to match Figma prototype (feat(dpp): ✨ redesign DPP tab to match Figma prototype #839)
- refactor(ui): remove redundant owner banners and fix search filters (refactor(ui): remove redundant owner banners and fix search filters #840)
- refactor(tags): ♻️ 🏷️ prefix user tags with tag- to disambiguate from system classifiedAs (refactor(tags): ♻️ 🏷️ prefix user tags with tag- to disambiguate from system classifiedAs #841)
- feat(project): ✨ add DPP-backed 3D model viewer (feat(project): ✨ add DPP-backed 3D model viewer #848)
- fix(docker): 🐛 replace broken pnpm download URL with corepack (fix(docker): 🐛 replace broken pnpm download URL with corepack #849)
- fix(cards): 🐛 remove image rounded corners and allow two-line titles (fix(cards): 🐛 remove image rounded corners and allow two-line titles #860)
- fix(docker): 🐛 pin pnpm version to fix frozen-lockfile mismatch (fix(docker): 🐛 pin pnpm version to fix frozen-lockfile mismatch #863)
- fix: 🐛 re-add Machines tab to profile page with proper spec filtering (fix: 🐛 re-add Machines tab to profile page with proper spec filtering #861)
- fix: 🐛 restrict manufacturability filter to designs catalog, driven by derived products (fix: 🐛 restrict manufacturability filter to designs catalog, driven by derived products #859)
- fix: 🐛 catalogue filters ux, remove apply button (fix: 🐛 catalogue filters ux, remove apply button #858)
- fix(docker): 🐛 fix build failure — NODE_ENV blocking devDeps and transpilePackages config (fix(docker): 🐛 fix build failure — NODE_ENV blocking devDeps and transpilePackages config #865)
- fix(docker): 🐛 simplify Dockerfile — build at startup so gui.env vars are available (fix(docker): 🐛 simplify Dockerfile — build at startup so gui.env vars are available #867)
- feat: ✨ implement feedback system (reviews + comments) in project detail pages (feat: ✨ implement feedback system (reviews + comments) in project detail pages #862)
- fix: 🐛 unrelated dpps in product details (fix: 🐛 unrelated dpps in product details #869)
- feat: 3D viewer controls (zoom, rotate, fullscreen) and multi-CAD file support (feat: 3D viewer controls (zoom, rotate, fullscreen) and multi-CAD file support #868)
Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
- Make 404 page public (accessible without login) - Hide Contributors tab when not authenticated - Hide user info sections (contributors, project by) for logged-out users - Skip GraphQL user queries when not authenticated - Hide contributions count/button when 0 - Show DPP QR-code only for products with DPP metadata - Fix BrBreadcrumb and GeneralCard license footer Related to epic interfacer-gui-m4c Closes: interfacer-gui-m4c.1, interfacer-gui-m4c.2, interfacer-gui-m4c.3, interfacer-gui-m4c.4, interfacer-gui-m4c.5 --------- Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
…ng for url params (#818)
Recyclability: numeric percentage (0-100%) with monotonic range tags for stepped filtering via classifiedAs, same pattern as energy/CO2. Repairability: binary toggle with single 'repairability-available' tag in classifiedAs. Both filters are wired through: - Create flow (ProductFiltersStep) - Edit flow (specs.tsx) - Products sidebar filters (ProductsFilters) - Active filters bar chips (ProductsActiveFiltersBar) - Tag generation and normalization (tagging.ts, useProjectCRUD) Closes interfacer-gui-zsv
- **feat: ✨ Epic 1 - Design System Foundation** - **feat: ✨ Epic 2 - Navigation and Layout Redesign** - **feat: ✨ Epic 3 - Catalog Pages (Designs, Products, Services)** - **feat: ✨ redesign project detail page with new layout** - **feat: ✨ Epic 5 - Profile Page Redesign with new layout and tabs** - **feat: ✨ Epic 6 - Creation Forms Redesign with new design tokens** - **chore: 🔧 close epics 7-9 in bd tracker** - **feat: ✨ add creation form access from profile page (cxo.7)** - **fix: 🐛 align catalog titles, stats & placeholders with prototype (cxo.1, cxo.2, cxo.3)** - **feat: ✨ add Show All dropdown to catalog toolbar (cxo.5)** - **feat: ✨ add missing sidebar filters (cxo.4)** - **feat: ✨ rename My list to Saved Lists, add Track Record nav item (cxo.8)** - **feat: ✨ enhance project cards with requires/nearby and based-on links (cxo.6)** - **feat: ✨ enhance detail page sidebar and add product passport section (cxo.9)**
- Add /dpps/[id] route with SSG fallback and public access
- Header card: orange DPP icon, inline status badge, batch code,
Share/Download PDF/overflow action buttons
- Collapsible 'What is a DPP?' explainer card with checkmarks
- Sticky sidebar with colored section navigation (desktop)
- Section cards with colored icon headers, title+subtitle, field grids
- Product detail DPP cards navigate to /dpps/{id}
- Profile DPP tab rows navigate to /dpps/{id} with keyboard support
- Fix useDppApi infinite re-render: bypass unstable useStorage refs,
read localStorage directly in useCallback bodies
Closes: interfacer-gui-7yb.1, .2, .3, .4, .6, .7, .8, .9
- Topbar: Designs nav button links to /designs instead of / - Topbar: active state uses exact path matching, no fallback - NavigationMenu: Designs sidebar link updated to /designs - Logo still links to / homepage
… backend (#838) - **feat: ✨ wire totalCount into first hero stat card on catalog pages** - **feat: ✨ wire sorting orderBy and distinctPrimaryAccountableCount from backend**
- Add KPI counter cards (total/active/drafts/archived) with backend facets - Add status filter dropdown and expanded sort options - Redesign table with Product ID, DPP ID, Batch/Unit, Status, Created columns - Add QR code download button and More Actions overflow menu - Add pagination footer showing count of displayed DPPs - Update API types for facets, search, sort params - Wire frontend to new backend search/sort/facets/QR endpoints
…840) ## Summary - remove owner-only edit banners from profile and project detail pages while keeping inline edit actions - fix search page filter composition to avoid sending mutually exclusive fields name and orName - fix profile tab search by wiring search input into the projects query filter with debounce ## Commits - refactor(ui): remove owner edit banners from profile and project detail pages - fix(search): avoid sending both name and orName filter params - fix(profile): wire search input to GraphQL filter in profile tabs ## Testing - manual verification of search page error path and profile tab search behavior
… system classifiedAs (#841) classifiedAs stores both user free-form tags and system-derived metadata (machine-*, material-*, category-*, powercompat-*, env-*, etc.), forcing display code to maintain drifting per-component blocklists to hide system tags from users. Introduce a dedicated TAG_PREFIX.USER = "tag" prefix applied symmetrically on save and read: - lib/tagging.ts: add userTag, isUserTag, stripUserTagPrefix, isSystemTag, extractUserTagValues, normalizeUserTagsForSave helpers plus SYSTEM_TAG_PREFIXES and LEGACY_SYSTEM_TAG_PATTERNS constants. - Save sites (useProjectCRUD handleProjectCreation + handleMachineCreation, resource claim) normalize user-entered tags to tag-<slug>. - URL filter producers (ProductsFilters, ProjectsFilters) prefix on apply and strip on load so chips show "laser cut" instead of "tag-laser-cut". - Display sites (ProjectCardNew, ProjectDetailNew, GeneralCard, ProjectsTableRow, ProductsActiveFiltersBar) route through extractUserTagValues, removing bespoke blocklists (including stale mat:, c:, pc:, env:, pwr:, rep:, m: entries). - Legacy un-prefixed tags remain visible via backwards-compat fallback in extractUserTagValues; no data migration required. Closes interfacer-gui-i46.
pnpm changed their release artifact naming, causing https://github.com/pnpm/pnpm/releases/latest/download/pnpm-linuxstatic-x64 to return 404. Use Node.js built-in corepack instead, which is the officially recommended way to install pnpm in Docker images.
## Problem The Docker publish workflow fails at `pnpm install --frozen-lockfile` with `ERR_PNPM_FROZEN_LOCKFILE_WITH_OUTDATED_LOCKFILE`. **Root cause:** The Dockerfile uses `corepack prepare pnpm@latest --activate`, which installs pnpm 11.x. The `pnpm-lock.yaml` was generated with pnpm 9.x (lockfileVersion `9.0`). pnpm 11 cannot process this lockfile with `--frozen-lockfile`. ## Fix 1. **Added `packageManager` field** to `package.json` specifying `pnpm@9.13.1` — this is the standard way to declare the package manager version 2. **Simplified Dockerfile** — removed explicit `pnpm@latest`, letting corepack auto-detect the version from `package.json` Now when `pnpm` is called inside the Docker build, corepack reads `packageManager` and downloads the exact matching version (9.13.1).
…y derived products (#859) - Remove manufacturability filter from products catalog sidebar - Make designs manufacturability filter functional via classifiedAs tag - Set manufacturable-true tag on design via updateEconomicResource when a product derives from it - Clean up dead manufacturability code from old ProductsFilters/ActiveFiltersBar close: #856
…spilePackages config (#865) ## Problem The Docker build was failing with two errors: 1. **TypeScript not found**: `NODE_ENV=production` was set before `pnpm install`, causing pnpm to skip `devDependencies`. TypeScript (a devDep) was never installed, so `next build` failed. 2. **Invalid next.config.js**: `transpilePackages` was a top-level config property — only valid in Next.js 13+. For Next.js 12.2.5 it must go under `experimental`. ## Fixes ### `Dockerfile` - Multi-stage build: `builder` stage installs **all** deps (NODE_ENV not set during `pnpm install`) including devDeps, then builds - `runner` stage does a fresh `pnpm install --prod` for production-only deps - Build happens at image build time, not container start ### `next.config.js` - Moved `transpilePackages` under `experimental` (valid for Next.js 12.x) ## Verification Docker build tested locally and succeeds: - 1224 packages installed in builder (incl. typescript 5.9.3) - Next.js build completes, all 94 pages generated - Runner image: 1058 production packages only
… are available (#867) ## Problem PR #865 moved `next build` to Docker image build time (multi-stage). On CI, no `.env` files exist (gitignored), so `NEXT_PUBLIC_*` vars were `undefined` when inlined into the client JS bundle. Apollo defaulted to `/graphql`. ## Fix Reverts to a **single stage** Dockerfile that: - Installs deps **before** setting `NODE_ENV=production` (devDeps like TypeScript are included) - Runs `pnpm build` at **container startup** via `CMD`, when `gui.env` is already loaded by docker-compose - Keeps `NODE_ENV=production` for Next.js build optimizations This restores the original deployment pattern where `NEXT_PUBLIC_*` vars are available during `next build` because docker-compose has already loaded `gui.env`. ### Companion PR [DTECH_HSU_2025_OPS#7](interfacerproject/DTECH_HSU_2025_OPS#7) — fixes `gui.env.j2` to use proper Jinja2 variables instead of `${BASE_URL}`
…ail pages (#862) to work it needs the feedback server to be online: https://github.com/interfacerproject/interfacer-feedback-service - **bd init: initialize beads issue tracking** - **feat: ✨ implement feedback system (reviews + comments) in project detail pages** - **fix: 🐛 resolve i18next/no-literal-string and @next/next/no-html-link-for-pages lint errors** - **feat: ✨ wire reply-to-review flow with inline CommentThread + CommentForm** - **fix: 🐛 always show existing review replies, sign DELETE requests** - **fix: 🐛 send {} body with DELETE so Zenroom signing has real data** close: #864
…e support (#868) ## Summary Adds interactive controls to the 3D viewer and supports uploading/displaying multiple CAD files. ### Changes **StepModelViewer** — new control buttons after each viewer: - Zoom in / Zoom out - Rotate (left, right, up, down) - Reset view (re-fits model to window) - Fullscreen toggle (browser Fullscreen API) **ModelFilesStep** (creation form): - Removed `maxFiles={4}` limit — users can upload many STEP/STP/STL files - Updated labels and help text **ProjectDetailNew** (design detail page): - Section renamed to "3D and CAD Files" - All model files shown as individual cards with inline viewers (not just the first viewable one) - Each card shows: file index, file name, format badge (STEP/STL), download link ### Screenshots N/A — run locally to verify Closes interfacer-gui-494
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.