Lantern

Waukesha, Wisconsin · what’s new

What’s new.

Living log of what shipped. Launch is the deadline and the gates — charge the walk Friday, October 30, 2026. This page is the diary. Harborline is the demo plant, not a customer.

Tuesday, September 15, 2026

  1. this deploy

    48-port switches fit a phone

    A 48-port faceplate was wider than the screen, so the page grew and left black empty space. Ports now wrap to 12-wide on a phone and fill the card.

    • Patch panels stay two rows of 12. A 48-port switch wraps to four rows of 12 on a phone; desktop still shows two rows of 24.
    • Port keys stretch with the card. The page no longer scrolls sideways from the rack drawing.
    • chrome
    • plant
  2. this deploy

    Harborline emails are not sitting on Sign in

    admin@harborline.local was a demo-seat shortcut at the bottom of login, not a signed-in account. Those seats now sit under Harborline demo so the form stays empty.

    • Sign in lede is your email. Tap Harborline demo only to walk the fictional company.
    • Email and password stay empty until you type or open a demo seat. Demo is not Enlighten admin.
    • chrome
    • login
  3. this deploy

    Lockup keeps its shape

    The A + LANTERN mark was flattening because the img box was 184×64 while CSS set a shorter height. It now uses the real 1838×640 ratio.

    • BrandLogo width/height match the PNG. CSS aspect-ratio 1838/640, max-width none, object-contain.
    • Header mark no longer sits in a min-w-0 flex child that can squeeze it. Footer bulb unchanged.
    • chrome
    • logo
  4. this deploy

    Tighter left menu, pinned to the viewport

    Menu rows are closer together so the list fits. The rail stays on screen and does not scroll into empty space past the last item.

    • Nav links are 2rem tall with tight group gaps. Find, Jobs, Billing stay one word.
    • Aside is sticky, viewport-tall, and clipped. Rail overscroll is off so the left of the page never goes blank below the last link.
    • chrome
    • nav
  5. this deploy

    Tab and lockup are the Lantern A, not the old lightbulb

    Product chrome never falls back to the Enlighten lightbulb. The bulb stays in the Powered by footer only.

    • BrandLogo fallbacks are lockup then /lantern-icon.png. The Enlighten lightbulb is not a header or tab icon.
    • Favicon / apple-touch / PWA icons stay the purple-around-A square. Hard-refresh the tab if a cached bulb sticks.
    • chrome
    • logo
  6. this deploy

    Left menu hugs the labels

    The expanded rail is only as wide as the icon, the word, and a compact count. No extra padding canyon.

    • Expanded rail is 10.5rem (168px). Collapsed stays 4.25rem icon-only. Labels stay one word and nowrap. Find is still Find.
    • Nav uses px-1, gap-2, shorter group tracking. Jobs/Billing/admin badges stay, compact (min 1.25rem). Overflow hidden on the rail is fine.
    • Darker purple rail scrollbar and hover chevrons stay. Did not start plant CSV.
    • chrome
    • nav
  7. this deploy

    Darker purple on the menu scroll

    The left rail overflow bar is a thin darker purple, with a short hover chevron instead of cheap native arrows.

    • aside[data-collapsed] nav: track #1a1030 / #3b0764, thumb #6d28d9, orange hover. Custom chevrons nudge on hover. Firefox uses darker purple scrollbar-color. Did not widen the rail or start plant CSV.
    • chrome
    • nav
  8. this deploy

    Narrower left rail, real counts on Jobs and Billing

    The left menu is tighter. Open work orders and unpaid invoices show a small number. Plant items stay unbadged.

    • Expanded rail is 12rem (192px). Collapsed stays icon-only. Org and account still truncate in the header, not by widening the menu.
    • Jobs: open work orders (not billed). Billing: draft/open/sent invoices. Tests: unattached or a fail from the last 30 days. Docs stay quiet. Admin Launch/Health/Board/Clients/Mail badges stay.
    • Rail overflow uses the same thin dark orange/purple scrollbar. Did not start plant CSV.
    • chrome
    • nav
  9. this deploy

    Find submit matches the search field

    The orange search control is a rounded square like the input beside it — same height, 10px corners, lucide Search. Not a circle and not a wrapping pill.

    • SearchForm submit is size-14 / size-12 with rounded-[10px], same as the Find input. .btn-lantern-icon overrides the pill 999px radius. Sidebar Find stays icon + Find.
    • chrome
    • find
  10. this release

    Dark orange-and-purple scrollbars

    The field tool no longer shows a thick white Windows scrollbar on the purple UI. Scrollbars are thin, dark-track, with a purple-to-orange thumb like the launch spine and lantern button.

    • Firefox uses thin scrollbar-width and scrollbar-color. WebKit uses a 9px rounded thumb on html, body, overflow panels, the left rail, sheets, and textareas.
    • Track stays near #0b0d14. Thumb is #6d28d9 into #f97316 / #ffb020. Hover is a touch brighter. Not a loud rainbow bar.
    • Did not start plant CSV. Did not rewrite password hashes.
    • chrome
    • nav
  11. this deploy

    Signed-in /launch uses the left rail, not the old top menu

    If you are signed in — including Enlighten admin — Launch, Changelog, and contractor pages use the collapsible left rail with lucide icons and the icon+LANTERN lockup. The old GTM top menu (Open the tool / Talk to Enlighten pills) is logged-out marketing chrome only, and those wrapping slogans are gone from compact header pills.

    • SiteShell: usesAppChrome(pathname, viewer). A viewer always gets AppChrome, even on /launch, /changelog, and /for-contractors.
    • MarketingChrome is logged-out only. Compact header is lockup + Sign in + Contact. Talk to Enlighten stays a sentence on the contractor page, not a wrapping pill.
    • Find is a search icon. .btn-lantern stays nowrap. Did not start plant CSV. Did not rewrite password hashes.
    • chrome
    • nav
    • launch
  12. this deploy

    Launch, Changelog, plan, and health skip Sign in

    Shop pages stay public: /launch, /changelog, /plan (business plan), and GET /api/health. Enlighten /admin/health and /admin/errors stay behind the operator seat. Live hashes stay put.

    • Middleware lets /launch, /changelog, /plan, /api/health, and /api/ops/report through without a session.
    • /plan redirects to /for-contractors/plan so the business plan is one short URL.
    • /admin/health and /admin/errors stay Enlighten-only. Did not rewrite password hashes.
    • launch
    • changelog
    • ops
  13. this deploy

    Sign-in lockup is the public PNG, not the image optimizer

    Login, signup, forgot, reset, marketing, pitch, changelog, and legal show icon + LANTERN from /lantern-lockup.png. Live /_next/image was 400ing the mark even though the PNG itself was fine.

    • BrandLogo is a raw img to /lantern-lockup.png. Footer Powered by Enlighten stays /enlighten-icon.png. No Enlighten wordmark beside the lockup.
    • next.config turns off the image optimizer so a leftover next/image cannot send chrome through /_next/image.
    • remote-release copies the lockup into standalone and nginx httpdocs. Did not rewrite password hashes.
    • chrome
    • logo
  14. this deploy

    Launch, Changelog, and health are public

    What's new is a public living log. Launch shows finish-speed dates. Enlighten health watches the public pages so a 5xx or unstyled shop page is a report, not a screenshot.

    • Public /changelog and footer What's new. Audience admin rows stay on the Enlighten board only.
    • Public /launch plus Enlighten /admin/launch. Finish-speed: chrome Tuesday 15 Sep 2026, then plant CSV → price book → invoice PDF → first building before charge Friday 30 Oct 2026. No fake weekly calendar. No Stripe.
    • GET /api/health is public JSON. POST /api/ops/report is public. /admin/health is the same board as /admin/errors. Nav badge is open reports.
    • launch
    • changelog
    • ops
  15. this deploy

    Finish-speed dates on Launch, admin, and the contractor timeline

    Charge-the-walk stays Friday, October 30, 2026. Remaining work now has actual dates: chrome/plan today, plant CSV 3 Oct, price book 10 Oct, invoice PDF 17 Oct, first real building 24 Oct. No Stripe.

    • Public /launch, Enlighten /admin/launch, and /for-contractors/roadmap share one finish-speed sequence.
    • Catalog due dates merge onto the live board without rewriting password hashes.
    • Plant CSV is next. Stripe stays later.
    • launch
    • plan
    • gtm
  16. this deploy

    Production webpack no longer bundles the account store

    The contractor launch strip was pulling the server store (node:fs, crypto, SMTP) into the client graph because it imported both getStore and the countdown. Shop pages now pass the deadline counts as props. instrumentation.ts was the webpack Edge leak — it dynamically imported the store without webpackIgnore. The live chrome — search icon, icon+LANTERN lockup, left rail — can ship.

    • GtmLaunchStrip is presentational. Server pages load launch board data and pass deadline / done / total.
    • instrumentation.ts loads the store with webpackIgnore so Edge webpack never sees node:crypto/fs/net/path/tls.
    • store.ts imports server-only. Did not touch live password hashes. rsync still excludes data/.
    • deploy
    • chrome
    • launch
  17. this release

    Left rail — icon + LANTERN lockup

    The field tool chrome is a collapsible left sidebar with lucide icons. Header is the Lantern lockup only. Enlighten Studios sits in the footer as Powered by, not as a second wordmark beside LANTERN.

    • Product header is icon + LANTERN. Org name is not printed next to the mark. Operator org is not shown in the header.
    • Left rail: labels when open, icons when collapsed. Collapsed state persists in localStorage. Mobile opens the same nav in a left sheet from the hamburger.
    • Find, Floors, Lens, jobs, billing, team, guide, and admin keep their routes. Feature flags still hide seats that do not have the module. Admin uses the same shell.
    • Public /for-contractors pages keep a simple top marketing nav. Login lockup has no Enlighten Studios subtitle.
    • chrome
    • nav
  18. this release

    Find is a search icon, not a wrapping pill

    The orange Find control is a magnifying glass. Compact chrome uses icon + a real word. Slogan fragments that wrap (Find it, Open the tool) are gone.

    • Search submit is lucide Search with aria-label Find. Sidebar Find stays icon + Find when open, icon-only when collapsed.
    • Marketing header: Find with a search icon for signed-in shops, Contact for the mail CTA. Talk to Enlighten stays a sentence on the contractor page, not a wrapping pill.
    • chrome
    • find
  19. this deploy

    Contractor timeline builds again

    Production deploy was blocked on a TypeScript error on /for-contractors/roadmap. Optional due dates still print when present. Did not start plant CSV.

    • formatLaunchDeadline only receives a string due, not an empty object from 'due' in item on const PHASES.
    • Chrome Tuesday 15 Sep 2026 and charge Friday 30 Oct 2026 stay the only calendar dates. Live hashes stay in /root/Lantern/data.
    • gtm
    • deploy
  20. this deploy

    Production TypeScript build is green

    launch-changelog.tsx and the changelog store share one ChangelogEntry shape. The 4037d62 webpack build failed because the page still expected commit groups after the store rewrite. Footer, Terms, and Privacy stay public. Live hashes stay put.

    • 4037d62 failed next build: launch-changelog imported changelogGroups / changelogCommitCount / CHANGELOG_LIVE_* after StoreFile.changelog became items[].
    • This deploy — ChangelogEntry lives on auth types. The launch log maps items onto commits so webpack typechecks. /terms and /privacy stay public. rsync still excludes data/.
    • changelog
    • deploy
  21. this release

    Changelog is its own section

    Launch stays the deadline and the checklist. The Tuesday dump is on /launch. What’s new also lives at /changelog as a living log.

    • Public /changelog with today’s work. Enlighten admin Changelog tab plus POST /api/admin/changelog.
    • Entries persist in the tenant file as changelog. Merge-add only — never a reason to rewrite the live store.
    • /launch and /admin/launch carry the plan and the Tuesday dump. /changelog is the footer’s living log.
    • changelog
    • chrome
  22. this deploy

    Full business plan and Tuesday changelog on Launch

    The plan is on /launch and /admin/launch (not a link stub). The Tuesday diary is on those pages and also at /changelog.

    • 4037d62 after 04:16 UTC · This deploy — Put the business plan and Tuesday changelog on Launch. Hard-refresh /launch and /admin/launch.
    • Public /changelog (What's new) is the same living log, newest first.
    • changelog
    • plan
    • launch
  23. 04:14 UTC

    Launch board, motion, deadline, auto-checkoff

    Public /launch is the deadline page (countdown, phases, live vs next). Enlighten /admin/launch is Mike’s checklist. Status writes into launchBoard in the tenant file (merge-add only). Deadline is Friday, October 30, 2026.

    • 7eae10c 04:14 UTC · Live — Report completed work to the Enlighten /admin/launch board. Countdown and checkboxes share one write path.
    • POST /api/admin/launch and reportLaunchItem share one write path.
    • Honest seed: Harborline walk and chrome are done; plant CSV, price book, invoice PDF, first building, and freeze-if-unpaid are not.
    • launch
  24. 04:08 UTC

    Go-to-market packet and Cable Pro price

    Public contractor landing, print one-pager, price sheet, plant-import scope, business plan, timeline, and sales playbook. Those routes are not behind login.

    • cb385de 04:08 UTC · Live — Publish Lantern go-to-market pages and Cable Pro pricing.
    • /for-contractors, /pitch, /for-contractors/plan, /roadmap, /playbook, /pricing, /import.
    • Published price: $99 office, $35 field, extra building $30, import $1,500–$8,000 typical $3,500. No Stripe.
    • gtm
    • pricing
  25. 03:18–04:06 UTC

    Logo kits 1–8, then kit 8 option 3 as live chrome

    Eight review sheets at /brand. Mike locked kit 8 option 3: gold triangular A on a dark rounded square with a violet wash, plus the LANTERN wordmark. Favicon, apple-touch, and PWA icons are that square.

    • 8af9957 04:06 UTC · Live — Ship kit 8 option 3 as live Lantern product chrome.
    • 89c5191 03:18 UTC · Live — Add Lantern 10-mark logo kit for review.
    • Mike’s choice is live: gold triangular A on a dark rounded square with a violet wash, plus the LANTERN lockup.
    • Favicon, apple-touch, and PWA icons are the purple-around-A square only.
    • logo
    • chrome
  26. 04:06 UTC

    Powered by Enlighten Studios, Terms, Privacy

    Studio mark and link sit at the bottom of the app panel and the login frame, pointing at enlightenstudios.us. Footer lists Terms, Privacy, Launch, Contact. /terms and /privacy are public.

    • 767b8aa 04:06 UTC · Live — Add Powered by Enlighten Studios credit to Lantern chrome.
    • Powered-by credit on desktop, mobile, and login. Links to enlightenstudios.us.
    • Legal copy on /terms and /privacy. Curl at 04:16 UTC still 307'd logged-out visitors to Sign in; this deploy lists them as public.
    • footer
    • legal
  27. 03:47 UTC

    Billing-only package and invoice ledger search

    Fourth package for shops that only need PO and invoices — no closet map. /billing filters by number, PO, bill-to, site, SKU, status, and issued dates on shareable query URLs.

    • e4f74a4 03:47 UTC · Live — Add billing-only package and invoice ledger search.
    • Billing package: work orders, PO, invoices, SOP. No Find, Lens, floors, or Fluke as the job.
    • Search the ledger with ?q= and ?status= so a shop can share a filtered view.
    • billing
  28. 03:19 UTC

    Customer invoices, Net 30, two-layer feature flags

    Billing is the shop’s ledger: work-order PO, catalog lines, Net 30. Enlighten can turn a module off for company admins; company admins can hide the same tools from field seats.

    • 0ba37cf 03:19 UTC · Live — Add customer invoices and two-layer feature flags.
    • /billing is the contractor AR ledger (not Enlighten’s cut).
    • Flags are company-level and seat-level. Invoice rows survive deploys with the rest of the tenant file.
    • billing
    • flags
  29. 02:09 and 03:04 UTC

    Floor PDF studio — upload, orange highlight, clip on the room

    A customer drawing becomes the Floors background. Drag an orange box; the crop sits under each room card. Harborline keeps its schematic until a PDF exists.

    • 8630e3b 02:09 UTC · Live — Add floor-plan PDF studio and location clips on Floors.
    • 839ee7f 03:04 UTC · Live — Fix PDF highlight so dragging paints a selectable area.
    • Harborline schematic stays until a PDF exists.
    • floors
  30. 03:02 UTC

    Live tenant file survives deploys

    A release rsyncs the app and excludes data/. Operator sign-in is not reset by shipping code. The live store stays on the server data directory. This log does not discuss credential internals.

    • 113a6d9 03:02 UTC · Live — Keep operator credentials on the live data dir.
    • Deploy never sends or overwrites the live tenant file.
    • Production LANTERN_DATA_DIR is the server data directory, not the build tree.
    • store
    • deploy
  31. 02:38–02:43 UTC

    Harborline company-admin vs field demo; Mail tab

    Two Harborline cards: company admin cannot open Enlighten Admin; user demo is field-only. Production mail submits to the box postfix. Mail tab shows host, port, and from.

    • Company-admin demo cannot open Enlighten Admin. User demo is field-only.
    • Production mail goes to local postfix on 127.0.0.1:25.
    • Admin Mail tab shows the postfix target when SMTP_HOST is set, plus the existing test-send button.
    • Demo cards invite a mapped-plant walk instead of leading with what the seat cannot do.
    • mail
    • demo
  32. 02:18–02:26 UTC

    MSP, Cable Pro, Advanced — then seat limits before upsells

    Package sits on the company (and optionally a seat) and maps onto module flags. Enlighten picks the mode on the client record. Harborline stays Advanced for sales walks.

    • MSP Basic is plant/Find without billing the customer from Lantern. Cable Pro is the offer (jobs, Fluke PDF, invoices). Advanced is both.
    • An employee who opens Jobs, Tests, or Lens sees intranet + Find copy, not a Cable Pro upsell, when that module is off for the seat.
    • flags
    • packages
  33. 02:03–02:06 UTC

    Jobs, PO, SKUs, Fluke PDF, SOP guides, feature flags

    Company admin is /team, separate from Enlighten /admin. Work orders carry a PO. Fluke is a PDF on the job — no LinkWare parse. SOP lives under Docs. Field and operator how-to books are /guide and /admin/guide.

    • 8893a8a 02:03 UTC · Live — Ship company roles, SOP, jobs, Fluke tests, and feature flags.
    • Signup and first client contact are company admin. Harborline extra seats, SOP, a sample work order, and a LinkWare-style PDF seed when missing.
    • Lens captures length and product. /guide for the shop; /admin/guide for Mike.
    • jobs
    • fluke
    • guides
    • flags
  34. 01:53 UTC

    Login starts empty; forgot-password is real

    The form does not prefill Harborline. Tap a demo card to fill that seat. Forgot / reset mails a two-hour link. Admin is a different seat than the demo.

    • Email and password start empty. Harborline fills only from the demo cards.
    • /forgot and /reset issue a two-hour reset and mail the link.
    • login
  35. 01:33 UTC

    IP phones on the same drop as the PC

    The closet hole: desk phone on the wall jack (PoE, VLAN 20), workstation daisy-chained through the phone. Search an extension. File a phone from Lens. Open /phones for every Harborline location.

    • Harborline phones are plant, not a separate directory. Extension search, Lens file, and a Phones tab for each location.
    • phones
    • plant
  36. 00:47–01:22 UTC

    The field tool opens: login, Enlighten console, Harborline walk

    First stretch of the day. Lens stops covering the rack. Harborline becomes a signed-in demo tenant. Mike gets a real operator console. Clients lead with buildings so a phone can still reach Admin.

    • MDF/IDF picker and port overlay sit off the live camera until a closet is selected, so the rack stays visible.
    • Sign in exists. Harborline is the demo tenant. Accounts, billing, and buildings live in the store.
    • Admin Clients lists every location and building. Board is a kanban. Tools cover demo reset, export, operators, and audit.
    • The add-client form sits under the directory. The Admin chip stays in the header on a phone.
    • login
    • admin
    • plant

Waukesha

The log stays current. The deadline stays on Launch.

Mike Cobus · Enlighten Studios. First day in this book is Tuesday, September 15, 2026. Every later ship adds a row here in the same commit.