⚙ PARTS — BIN LOCATOR

0 parts loaded (none)

CREATED BY N.ROPER — MTX ROSENBERG — v0.9.16 (beta)

Select a location above to begin searching

★ ADD CUSTOM PART

DESCRIPTION * BIN LOCATION * MANUFACTURER (optional) PART # (optional) ITEM # (leave blank to auto-assign) NOTE (machine, line, application, etc.)
⚠ Description and Bin Location are required.

⚙ PART DETAIL

✎ REVISION LOG

v0.9.17 BETA— Jun 20, 2026 — Board, Equipment & Search
  • Board — post parts directly from search, memory, or detail view; board message deletion with admin password gate; authors can remove their own posts without admin password.
  • Equipment — PKG/PROC filter toggle; tech equipment suggestions with instant pending visibility and admin approval flow; offline equipment cache and submission queue.
  • Memory — LOOK UP button jumps directly to part in search; simplified button labels.
  • Search — selecting a location tab now loads parts immediately (no blank screen).
  • Abbreviations — HTR (Heater), KNIF (Knife) added.
  • Infrastructure — SW offline reliability overhaul.
v0.9.16 BETA— Jun 2026 — Infrastructure Hardening
  • Firewall enabled — server access now restricted to authorized channels only.
  • Internal services hardened — backend services no longer directly reachable from outside the server.
  • mtxfiles ZIP download bug fixed — file downloads from the document library were failing in certain cases.
  • Database maintenance — WAL checkpoint flushed and ghost database files removed from project roots.
v0.9.15 BETA— Jun 2026 — Passwordless Accounts + Multi-Device Sync
  • Your name is now your login — set up a badge once and that exact name recovers your Parts Memory on any device, even after a full reinstall.
  • Multi-device sync — sign in with the same name on another device and your Parts Memory stays in sync automatically.
  • Name already in use? — if a login name is taken, confirm it's you to add the device, or pick a different name.
v0.9.14 BETA— Jun 2026 — Parts Memory: Cache-Loss Restore
  • Parts Memory survives cache clears — if your local data is wiped but your device ID remains, the app now restores your Parts Memory from the server on next load instead of overwriting the server with an empty list.
v0.9.13 BETA— Jun 2026 — Parts Memory: Naming & Device Sync
  • Renamed to "Parts Memory" — the in-hand reminder list is now called your Parts Memory throughout the app.
  • Works fully offline — parts you add are saved on your device first, so it keeps working with no signal or Wi-Fi.
  • Syncs to the server — when you are online, your Parts Memory backs up to the server (on load and as you make changes). Removing a part also removes it from the server copy. This lays the groundwork for future usage tracking.
  • Stable device ID — your device now keeps the same ID even if the app cache is cleared, so your identity and memory stay linked.
v0.9.12 BETA— Jun 2026 — Install Button Fix
  • Install button fixed — the INSTALL button now only appears when your browser can actually install the app, so it no longer shows as a dead button (most often seen on Android when the app is already installed). If you tap it and no install prompt is available, it now shows step-by-step instructions for your device instead of doing nothing.
v0.9.11 BETA— Jun 2026 — Reminder List, Quantities & Terms Notice
  • 📌 Memory List added — open any part and tap ADD TO MEMORY to remember you have it in hand. Tap the 📌 LIST button in the header to review or remove items. This is a personal memory aid only and is stored on your device.
  • Quantity on add — choose how many of a part you have in hand when adding it, and adjust the count any time from the part view or from the list.
  • Check-out reminder — whenever parts are sitting in your list, opening the app reminds you to check them out in SAP (S/4). Clear the list once they are checked out.
  • Terms of Use notice — a brief acknowledgement now appears each time the app opens, confirming this tool is not part of SAP and cannot be used to check out parts or replace SAP for standard business use.
v0.9.9 BETA— Jun 2026 — Audit, Search Fix & QoL Improvements
  • Parts search data fix — MPNs 2–15, OEM numbers, and Legacy part numbers were missing from search results. Full data re-merge performed; all alternate part numbers now packed into the search index across all ~14,000 parts.
  • Material number copy button added to part detail panels — same one-tap copy behaviour as bin location.
  • PWA install compatibility fix — added mobile-web-app-capable meta tag for correct install prompt behaviour on Android and Chrome devices.
  • Duplicate /api/perf/processes route removed — the improved parser now always runs, fixing process modal accuracy.
  • perf_log and perf_spikes tables added to DB bootstrap schema — performance logging now survives a DB reset without silently failing.
  • Admin authentication enforced on equipment and suggestions delete routes — previously callable without a valid session.
  • Stale .bak files removed from public/ — were publicly accessible over HTTP.
  • Ghost database file at project root deleted, kill switch restore path corrected.
  • Dead code and files removed — orphaned comment stubs, patch_tokens.js, preview.html, source/ directory, and old backup files from project root.
v0.9.8 BETA— Jun 2026 — Security & Reliability Update
  • Security hardening — multiple server-side improvements to admin access controls.
  • Rate limiting added to all API endpoints.
  • Network-first service worker — app always loads fresh from Pi; cache used only as offline fallback, eliminating stale page issues.
  • Deprecated meta tags cleaned up.
v0.9.7 BETA— Jun 2026 — Equipment Filters, Announcements & Admin Tools
  • Equipment Filter — ⚙ EQUIP button filters search results by machine. Multi-select supported.
  • Tech Part Submissions — techs tap + on any search result to propose adding it to an equipment list. Admin reviews before going live.
  • Admin Equipment Management — create/delete equipment entries, verify or reject tech submissions.
  • Announcements — admins post feature banners to all users with remind later / dismiss options.
  • Badge Setup Prompt — new users prompted on every load until badge is registered.
  • Admin Device Reset — reset all devices (keep favorites or full wipe).
v0.9.6— Jun 2026 — UI Modernisation
  • Full visual redesign — CSS-only overhaul preserving all existing functionality, data, and tamper detection. No structural HTML or JS changes.
  • Design system — introduced CSS custom properties (--amber, --blue, --surface, etc.) replacing all hardcoded hex values for easier future theming.
  • Typography — Inter (UI) and IBM Plex Mono (part numbers, bins, MPNs) loaded via Google Fonts, replacing system monospace throughout.
  • Search bar — rounded corners, blue focus ring, improved touch target size.
  • Location filter buttons — redesigned as pill-style toggles.
  • Results table — rows now render with card-style spacing and an amber left-edge accent, improving scannability on mobile.
  • Bin badge — .b class restyled as a stamped amber label with IBM Plex Mono for instant visual identification.
  • All modals and panels updated to use consistent border-radius and the new colour system.
v0.9.5— Jun 2026 — Infrastructure, Maintenance & Deploy Backups
  • Automated weekly reboot scheduled — Pi restarts every Sunday at 3:00 AM to clear memory and prevent cache buildup. Both services confirmed auto-restart cleanly on reboot.
  • Weekly maintenance script added — runs at 3:05 AM Sunday after reboot: SQLite VACUUM, old backup cleanup (files older than 14 days), and journal log trim.
  • Monthly security updates scheduled — unattended apt-get upgrade runs on the 1st of each month at 3:00 AM; output logged via system journal.
  • Deploy backup system — every time a new HTML file is deployed via the admin panel, a full timestamped backup is automatically saved to /backups/ before overwriting (e.g. index_2026-06-08T17-55-35.html). Retains the 20 most recent backups.
  • Reboot tested — Pi rebooted and confirmed both partsbin and mcp-server services came up automatically within 30 seconds. Tailscale Funnel routes restored on boot.
v0.9.4— Jun 2026 — MTX Board & Display Names
  • 💬 BOARD button added to header — opens a slide-in panel where any tech can post a short message (max 300 chars) visible to the entire MTX department in real time.
  • Messages display the poster's badge ID and name (or display name) with timestamp. Most recent messages shown first.
  • Admin delete — when the admin panel is unlocked, a delete button appears on each message for moderation.
  • Display name prompt — on first open, unregistered users (no assigned badge ID) are greeted with a welcome modal asking what they would like to be called. Stored in localStorage, never asked again.
  • Registered users (assigned badge ID) bypass the display name prompt entirely — their badge and name are used automatically.
  • Display name used across message board and suggestion submissions for consistent identity across all interactions.
v0.9.3— Jun 2026 — Admin Panel & Usage Stats Overhaul
  • Header button renamed from UPDATE to ⚙ ADMIN — accurately reflects the panel's full admin capabilities rather than just updates.
  • APP USAGE section redesigned — now shows two separate rows: Unique Users (distinct device count) and Sessions (total daily access count) across 7-day, 30-day, and all-time periods.
  • Unique user cells are now tappable buttons — tapping any cell opens a modal listing the exact badge IDs of who was active in that period. Unregistered devices shown as DEV-xxxxxx.
  • Usage stats fixed — sessions now populate correctly; duplicate _loadUsageStats function removed and JS syntax error in delete handler resolved.
v0.9.2— Jun 2026 — PWA & Offline Support
  • App now installable as a PWA — techs can add it to their home screen on Android and iOS. Displays as Parts Bin with a custom amber gear icon instead of the browser default.
  • Custom icons generated — amber gear on dark background in 32, 180, 192, and 512px sizes. Manifest sets theme color to amber and background to app dark.
  • Service worker added — the full app (1.5MB including all 14,000 parts) is cached on first visit. If the Pi goes offline, the app still loads and parts search still works from cache. Live features (suggestions, board) fail silently.
  • Cache-first strategy for app shell — cached version served instantly on every load; fresh copy fetched in background and cache updated when Pi is reachable.
  • API calls handled gracefully offline — service worker intercepts failed API requests and returns empty JSON so the app never crashes or shows a browser error page.
v0.9.1— Jun 2026 — Admin HTML Backup & Manual Update Testing
  • Admin panel: Download Current App HTML button now live — admins can pull a full copy of the live app directly from the Pi with one click, no SSH or SCP required.
  • Manual update workflow verified end-to-end — downloaded HTML can be edited locally and re-deployed via the Full App Update drop zone in the admin panel.
  • Green-styled download button added to the Full App Update section for quick visual distinction from deploy actions.
  • Download filename includes version and date stamp for easy revision tracking (e.g. Partsbin_v0.9_2026-06-08.html).
  • Button provides live feedback states: downloading, confirmed, and error — with auto-reset after 3 seconds.
v0.9— Jun 2026 — AI-Assisted Server Control & Parts Lookup
  • Claude AI integrated directly into the MCP server — AI can now query parts, read suggestions, and run shell commands on the Pi via the Claude.ai connector.
  • AI-assisted server control enabled — service status, restarts, log tailing, and diagnostics can be triggered through natural language from Claude.
  • Parts Bin search now available as an AI tool — Claude can look up bin locations, part numbers, and manufacturer info on request.
  • Suggestion management via AI — Claude can retrieve and review technician-submitted suggestions through the MCP get_suggestions tool.
  • MCP server hardened — removed OAuth requirement from /mcp route, added ExecStartPre port cleanup to prevent EADDRINUSE crash loop on service restart.
  • Tailscale Funnel confirmed publicly accessible — both app (port 3000) and MCP endpoint (port 3001/mcp) verified reachable from internet.
  • Admin panel: added Download Current App HTML button — allows admins to pull a local copy of the live app directly from the Pi without SSH or SCP.
v0.8— Jun 2026 — Self-Hosted Pi Migration & MCP Server
  • Migrated entirely off Netlify and Firebase — app is now fully self-hosted on a Raspberry Pi 4B running on the facility LAN.
  • Backend rebuilt with Express.js + SQLite (better-sqlite3), replacing all Firebase/Firestore cloud calls.
  • MCP Server v1.3 integrated — Claude.ai can now connect directly to the Pi as a custom connector, enabling AI-assisted parts lookup, diagnostics, and suggestion management.
  • Tailscale Funnel configured for secure public HTTPS access without port forwarding or static IP.
  • Both services (partsbin + mcp-server) run as systemd units — auto-start on boot, auto-restart on failure.
  • Suggestions, voting, and user tracking now served locally via SQLite REST API — no external dependencies.
  • MCP token persistence added — authentication tokens survive server restarts via tokens.json.
  • Parts Bin Locator accessible at http://192.168.1.20:3000 on LAN and https://nicks-pi-rig.tail07f9a1.ts.net externally.
v0.7— Jun 2026 — Community Suggestions & Admin Dashboard
  • 💬 SUGGEST button added to the header bar — available to all techs without requiring admin login.
  • In-app Suggestions & Bug Reports panel — techs can submit feedback directly from the app. Three categories: Suggestion, Bug Report, Parts Data Error.
  • Auto-assigned badge numbers (MTX-001 through MTX-999) — assigned permanently on each tech's first submission, tied to their device. Cannot be changed by the tech.
  • Live submission feed — all suggestions and reports are visible to every tech in real time via Firebase Firestore. Updates appear instantly without refreshing.
  • Thumbs up / thumbs down voting — one vote per device per submission. Vote counts update live across all connected devices.
  • Admin panel renamed from “Update Parts List” to “Admin Panel” to better reflect its expanded role.
  • Admin: Suggestions Management — full list of all submissions with delete controls. Loads automatically when the admin panel is unlocked.
  • Admin: Tech Roster — lists all registered users by badge number with last-active date. Admin can correct a name via the EDIT button.
  • Admin: App Usage Stats — shows unique device count active in the last 7 days, 30 days, and all time. Anonymous — no personal data collected.
  • Desktop scroll fix — admin panel and suggestions panel now scroll correctly in desktop mode when content exceeds viewport height.
v0.6— Jun 2026 — Favorites Persistence & Security
  • Favorites now persist automatically via localStorage — no button press required. Stars survive closing the browser, app updates, and Netlify redeploys. Each device retains its own independent favorites.
  • Removed SAVE button — previously allowed anyone to download a full copy of the HTML source. Eliminated to protect proprietary code and prevent unauthorized redistribution.
  • Favorites EXPORT/IMPORT (JSON) retained in the FAV panel for backup and device transfer purposes.
  • Header buttons (ABBR, MOBILE, REV LOG, UPDATE) unified to a shared style class — consistent size, equal width, evenly spaced across all screen sizes.
  • Fixed IMPORT button — changed from a programmatic file input trigger (blocked by many browsers and PWA contexts) to a native HTML label association. File picker now opens reliably on all platforms.
v0.5— Jun 2026 — Live Web App
  • Converted to a hosted Progressive Web App (PWA) — now lives at mtx-part-bins-offlinewebapp.netlify.app. No more sharing files manually.
  • iOS fix — rewrote data storage from inline JavaScript arrays to 50 async JSON fragments parsed one-per-tick. Eliminates iOS WebKit execution timeout that prevented parts from loading.
  • Offline support — service worker caches the full app on first visit. Works with no internet connection after that.
  • Installable — techs can tap Share → Add to Home Screen on iOS or use the browser Install button on Android/Windows to add it as a home screen app.
  • Admin panel — UPDATE button is now password protected. Requires admin credentials to access the updater.
  • SAP Deploy — after running an Excel update, a new Deploy to Netlify button pushes the new data live instantly. No more downloading and manually re-sharing the file.
  • Full App Deploy — admins can drop any updated HTML file into the updater panel to push UI or feature changes live for all users simultaneously.
  • Auto-update — all installed PWA instances silently receive updates within 60 seconds of a new deploy, no action required from techs.
  • REV LOG moved to main header — accessible to all users without admin login.
  • QR code generated for easy first-time install — scan once, tap Add to Home Screen, done.
v0.4.2— 2025 — iPad Compatibility
  • Fixed critical iPad bug — parts list failed to load on all iOS browsers. Root cause: authorship integrity check was serializing the full 1.4MB document via innerHTML, which silently fails on iOS WebKit, triggering a false-positive tamper detection that wiped all data arrays. Replaced with a targeted hidden element lookup that is immune to iOS memory constraints.
  • Safari-safe download helper — SAVE, EXPORT, and Updater download now work correctly on iPad (Safari ignores the download attribute; opens in new tab for long-press save).
  • DecompressionStream guard — Updater shows a clear upgrade prompt instead of crashing on iPadOS older than 16.4.
  • Touch-aware drop zone — "Drop file here" hint replaced with "Tap here to browse" on touch devices.
  • Added -webkit-overflow-scrolling:touch to all scrollable panels for smooth momentum scrolling on iPad.
v0.4.1— 2025 — Bug Fixes
  • Rewrote highlight function — faster segment-based escaping, merged overlapping ranges.
  • Compound abbreviation codes (e.g. TFL/PTFE, A/AMP) now match correctly in search.
  • Removed duplicate GEARMTR and GEARBX entries from abbreviation panel.
  • Stale search results no longer persist when switching to Favorites tab.
  • Abbreviation filter caches DOM query instead of re-querying on every keystroke.
  • Search result table uses array join instead of string concatenation.
  • Initialization order fixed — tab toggle now guaranteed to run after layout setup.
  • Updater template detection strengthened — all four structural markers required.
  • Updater replacements now validated — throws a specific error if any replace fails.
  • SAP column structure validated before processing — clearer error if format is wrong.
  • Empty inventory error now shows actual location column samples for diagnosis.
  • Inline type variable in report renderer whitelisted against known safe values.
  • SAVE button tooltip clarified — explains a new file copy is downloaded.
  • Module-level state variables converted from var to let.
v0.4— 2025
  • Abbreviation-aware search (typed plain words expand to SAP abbreviations).
  • Favorites system — star any part, persists via save-to-file download.
  • Add custom parts manually to Favorites.
  • Desktop / mobile layout toggle with localStorage preference.
  • Revision log added.
v0.3— 2025
  • Pure-JS XLSX parser — no server, no dependencies, works offline in Edge.
  • Updater merged into main file as overlay panel (was previously standalone).
  • Diff report: added parts, removed parts, bin location changes.
  • Drag-and-drop file input for SAP export.
v0.2— 2025
  • Multi-term AND search.
  • MFG MTX / WHS location toggle (single toggle, not per-sub-location).
  • Abbreviation guide panel with ~150 SAP abbreviation entries.
v0.1— 2025
  • Initial build. Single self-contained HTML file, no external dependencies.
  • Parts embedded as chunked JS arrays from SAP export.
  • Dark industrial UI — amber on near-black, monospace font.
  • Basic keyword search across item #, description, MFG, part #, bin.

💬 SUGGESTIONS & BUG REPORTS

YOUR NAME — first submission assigns your permanent badge number
CATEGORY DESCRIPTION

ALL SUBMISSIONS — LIVE

Loading...

💬 MTX BOARD

Loading...

👋 WELCOME TO PARTS BIN

You don't have an assigned badge ID yet. What would you like to be called when you post messages or suggestions?

USERS
LIVE

📌 MY PARTS MEMORY