Changelog
Every meaningful change we ship to StorageAds: new features, refinements, and fixes. Pulled straight from our build log.
October 2026
FixedKeep the page preview on screen beside the blocks Oct 9NewShow only what names the focused object in the drawer Oct 9NewUse the open hand lockup Oct 9FixedKeep the hero tiles on the path, not the playback step Oct 9NewOpen the facility tools as a track Oct 9FixedDrop unverified client results and automatic tracing claims Oct 9FixedKeep two unit types when they share a size label Oct 9FixedStop doubling StorageAds in the portal, partner, and admin tab titles Oct 9NewEdit a landing page from the funnel Oct 9NewEvery move-in in the open, with how we know Oct 8FixedThe page's form gets past the CSRF gate, and spaces stay where they're written Oct 8FixedThe Ask form reads as written on every screen Oct 8NewAsk on the page, on every screen; attach every visit to its page Oct 8NewPublish puts a campaign live, one function at a time Oct 8FixedPublish on current Meta and Google APIs, near the facility, at its budget Oct 8NewLive counts on the canvas wires Oct 8NewPublish Ads, Google Ads and TikTok join the handoffs Oct 8NewEvery suggestion says why, from the facility's own numbers Oct 8NewCreative Studio and Competitors join the chain Oct 8NewSetup in four screens that ends in a campaign Oct 8FixedTyped sizes count real vacancy Oct 8FixedA goal set by the owner is this month's goal Oct 8NewTools open on the object and hand off the next step Oct 8FixedOpen the tool and focus the link asked for Oct 8NewA page of their own, built from the goal Oct 8NewThe next move follows the operator to every page Oct 8NewOne next move for wherever the operator is Oct 8FixedCheck a campaign's own facility when it is read by id Oct 8FixedCite the index vacancy on the Units node Oct 8FixedInset the phone flow and keep it above the nav Oct 8FixedKeep funnel nodes readable at the default zoom Oct 8FixedPad ontology index section headers Oct 8NewDrag-and-drop canvas with a publish dry run Oct 8NewRead-only flow for an existing campaign Oct 8NewA next move inside the builder Oct 8FixedOwner-safe detail, unit mix, and one name Oct 8NewTyped ports, readiness, and a publish plan Oct 8NewFacility ontology, and a sample portal at /portal?demo Oct 7NewRecreate the open proven ad into an Ad Studio draft Oct 6FixedRoute FAQ price questions to public plan prices Oct 6NewThe read on every ad, a library clients can use, in their tools Oct 5NewHomepage FAQ answers from public pages, three themes only Oct 5FixedRetint marketing chrome off cream onto the page ground Oct 5NewShip cool light #E0E0E5 as the default page ground Oct 5NewOne login for the facility tools — portal + partner orgs, Portfolio-only video Oct 5FixedRestore client_goals, the last table production was missing Oct 5FixedPut every migration online and make the history whole Oct 5FixedApply the drift migration in the production build Oct 5FixedRestore the tables and columns code has queried since June Oct 5FixedDiagnostic auto-generation 401'd silently for weeks Oct 5FixedMove the two hourly crons onto the job queue Oct 5NewLibrary of long-running storage ads and adapt-to-studio Oct 5FixedGo-live activity log, homepage lead popup, onboarding routes Oct 5NewOperator screens, write-back settings, CSV move-in matching (s12) Oct 4NewVisitor, Touch and move-in write-back (MISSION.md s12) Oct 4
September 2026
FixedStop the minute worker keeping Neon awake 24/7 Sep 23NewTour booking, reminders, and same-day no-show recovery Sep 5NewSpeed-to-lead, and stop telling finished leads they didn't finish Sep 5NewSpanish throughout, and honour Spanish opt-outs Sep 5NewMissed-call text-back and abandoned-rental rescue Sep 5NewReservation lock, inbound SMS, waitlist capture Sep 4NewThe s5 seam, and the first automation that runs with no human Sep 4NewWindows onto the queue, the event stream and cost per move-in Sep 4NewPortfolio cost per move-in in a constant number of queries Sep 4FixedNOT NULL updated_at with no default broke 4 raw INSERTs Sep 4NewUnit-mix history unblocks the waitlist trigger; worker now schedules itself Sep 3NewDomain event bus over the job queue (MISSION.md s7) Sep 3NewDurable job queue with resumable workers (MISSION.md s1) Sep 2
July 2026
FixedTenants cross-facility IDOR guard + walkin code-validation GET Jul 5
June 2026
NewFacility lookup + autofill on Quick Diagnostic Jun 26NewAdd Quick Diagnostic to the admin nav Jun 26NewOne-step diagnostic generation from public data Jun 26FixedRepair the undefined --burgundy token in the facility chooser Jun 26FixedAlign stale tier names to canonical Launch/Growth/Portfolio + test the lead-capture path Jun 26FixedKeep Facility Manager as the portfolio chooser under sticky scope Jun 26FixedRepair audit-tool lead capture + CSRF-gated funnel hops Jun 26FixedMake the active facility scope survive navigation Jun 26NewAdd centralized email layer with validation, retry, and tests Jun 26NewAdd conversion-funnel + operator-alignment to diagnostic Jun 26NewContextual facility scope flow for the admin shell Jun 26FixedResolve merge artifacts from mass branch merge Jun 26NewRelated posts on each article by shared tags + pillar Jun 26NewWire partner revenue-share backend end to end Jun 26NewLink post tags and pillar into the filtered index Jun 26FixedStreet_rate fallback so the finder works before sensitivity scoring Jun 26NewFull search/filter/sort blog system on the index Jun 26FixedScope data-loss guard to command surfaces, not changelog prose Jun 26FixedLand street_rate fallback that a prior race dropped from the engine Jun 26FixedPersist stripe_subscription_id so deleted orgs stop billing Jun 26NewFall back to posted street_rate when no sensitivity score exists Jun 26FixedCommit noi CSV helpers referenced by committed client Jun 26NewFull Existing Customer Rate Increase tool + bundled WIP Jun 26NewAdd ItemList JSON-LD to the tools hub Jun 26FixedRemove banned sienna gold, use charcoal-on-light Jun 26NewCross-link tools + WebApplication JSON-LD Jun 26NewExpand suite (ECRI, break-even, valuation) + shared primitives Jun 26NewAdd Tools section + self-storage NOI calculator Jun 26NewEnroll via nurture post_audit, drip as fallback Jun 26NewAdd post_audit + recovery sequence templates Jun 26NewAdmin-gated /ideas viewer for the feature + idea doc Jun 25NewServe richer resume site at /resume via static export Jun 24NewAdd Blake's resume site at /resume Jun 23FixedCut REIT/jargon overuse in homepage copy Jun 20NewWire the Operator's Console into the admin chrome Jun 19NewBuild the Operator's Console workbench page Jun 19NewAdd Operator's Console data layer (pulse + attention) with tests Jun 19FixedRemount facility scope on any facility-set change Jun 19FixedHarden command palette highlight, effects, and labels Jun 19NewAdd read-only founder-digest endpoint Jun 19NewMake scope-aware tool empty state actionable Jun 19NewForward facility-manager tabs to scope-aware routes (Phase 3) Jun 19NewRe-spine sidebar into task-first groups (Phase 3) Jun 19NewScope-aware routes for all facility tools (Phase 3) Jun 19NewScope-aware facility tool routes (Phase 3 start, Studio group) Jun 19NewMake GBP the autonomous flagship — voice+safety, Q&A seed, photo refresh Jun 19NewAmbient lead count in sidebar nav Jun 19NewHeader token cleanup + header search opens palette Jun 19NewEditorial sidebar restyle + Quick find palette trigger Jun 19NewAdd global command palette (cmd-K) Jun 19NewMount facility scope provider + add header scope switcher Jun 19FixedSurface orphaned pages in sidebar nav Jun 19NewRedirect /changelog to the admin changelog Jun 18FixedRewire changelog page to surviving /api/changelog Jun 18NewCalculator, faq, final CTA, page wiring + QA fixes Jun 11NewResults dossiers, numbers strip, demand triggers Jun 11NewSystem split, capabilities grid, comparison + before/after Jun 11NewHero, problem, and the pinned closed-loop centerpiece Jun 11NewRedesign foundation — motion system, ledger tokens, chrome Jun 11FixedMobile a11y polish on hero dashboard + capabilities Jun 3NewMatch desktop hero copy + dashboard on mobile Jun 2
May 2026
NewMove Cost of Inaction onto its own /cost-of-inaction page May 29NewOwner-scope the deferred write + dual-auth routes May 29NewExtend owner auth to remaining tool routes May 29FixedDon't 500 the whole preview when non-critical env vars are unset May 29NewPhase 1b — gate facility-tool routes with requireFacilityAccess May 28NewPhase 1a — collapse session to httpOnly cookie May 28NewPhase 0 — port /manage owner slice onto clean branch May 28NewExtend citations to FAQ + Results case studies May 28NewCitations system + numbered footnotes across homepage May 28NewFB in-app browser sticky CTA + centralized Cal.com URL May 28FixedBroken Cal links across every Book-a-Call surface May 28FixedMobile overlap on iPhone 17 Pro Max (nav, status strip, typewriter) May 28NewFull tabbed dashboard — all 21 tools on the owner shell (Task 7) May 27NewOwner writes across remaining facility tools (Task 6 write pass 2) May 27NewOwner writes for funnels + social-posts (Task 6 write pass 1) May 27NewScope tenants/utm-links/churn-predictions reads to facility access (Task 6 batch 3) May 27NewScope facility tool APIs to requireFacilityAccess (Task 6 batch 2) May 27NewScope occupancy-intelligence + revenue-intelligence to facility access (Task 6 batch 1) May 27FixedTemp fallback to ADMIN_SECRET for scratch invite gate May 27FixedAllow same-origin requests in verifyCsrfOrigin May 27FixedUse imported FormEvent type at call sites (build fix) May 27FixedResolve build errors (React namespace import, unused var) May 27New/manage owner entry + Facility Overview vertical slice May 27NewFacility-scoped manage session + requireFacilityAccess guard May 27NewAdd DemoPreviewStrip — 3 live tiles under dashboard mockup May 27FixedExempt public lead-capture endpoints from CSRF, harden forms May 27Fixed/pricing, /about, /demo — critical CTA routing, copy voice, design system May 26FixedDiagnostic pipeline — submit button, maxDuration, lead scoring, retry cron May 26FixedSwitch to light-theme tokens so body text is readable May 25NewAdd Demand Triggers section between HowItWorks and System May 25NewRestore Angelo's 2-column hero + dedupe pipeline May 25NewRefinement sweep — hoist dashboard, 4-way comparison, FAQ May 25NewAlpha founding-facility pricing + competitor comparison + calculator May 25FixedTabular numerals + restore brand-gold logo split May 25NewOverride Angelo's JetBrains+Inter+Archivo with Manrope May 25FixedKill SSR hydration mismatches in live-data hooks May 25FixedRe-delete commit-notes/sync/route.ts after merge May 25NewOutcome tracking — churned + retained sweep (roadmap 11 phase 3) May 24NewPMS-to-lead fuzzy matching wired into v1 import (roadmap 10 phase 2) May 24NewExtend partial_leads + add lead_status_events (roadmap 10 phase 1) May 24NewWeekly price-sensitivity scoring (roadmap 08 phase 2) May 24NewWeekly NOI snapshot computation + Friday cron (roadmap 13 phase 1) May 24NewWeekly churn risk scoring cron (roadmap 11 phase 2) May 24NewAuto-enroll move-outs into win-back sequence (roadmap 05 phase 1) May 24NewInline image as base64 — self-contained page May 22NewPage that displays the overview card image May 22NewAdd storageads overview card for sharing May 22NewBlueprint theme preview at /preview/blueprint May 5FixedWrap long URL examples on mobile May 4FixedStop §00·NUMBERS card headers from overlapping on mobile May 4FixedBulletproof stat-cell header layout + tighten channel chart May 4FixedStop §00·NUMBERS card headers from overlapping on mobile May 4
April 2026
NewRip platform cards from §00·NUMBERS — industry + forecast only Apr 29New§00·NUMBERS — industry + forecast cards, hue-by-data-type Apr 29NewJuice up §00·NUMBERS — count-up, flash-on-update, deltas, 6 cards Apr 29New7d deltas + impressionsServed + moveInsAttributed Apr 29NewNULL//TRACE theme port + live-data layer Apr 29FixedVideo gen async via FAL queue — unblocks Vercel 300s timeout Apr 20NewStrip Poppins + Lora, JetBrains Mono primary, Inter as warmth escape Apr 19NewThreeWayComparison — repetition-grid disruptor Apr 19NewTypography — editorial voice for default, system voice opt-in Apr 19New.zine-frame editorial device + apply to InactionTimeline cards Apr 19FixedPin mobile ticker inner absolute to left-0 Apr 17FixedHide hero DashboardMockup below lg breakpoint Apr 17FixedOverflow-x clip on html + body (mobile horizontal scroll) Apr 17FixedMobile overflow on admin — add grid-cols-1 base across content grids Apr 17FixedMarketing — proportional font on mobile under urbit-landing Apr 17FixedInaction-timeline mobile — stack card inner, shrink circle, remove gold Apr 17FixedMobile layout — funnels tab, ad mockups, admin header, logo Apr 17NewReal TikTok slideshow + video text-overlay renderers Apr 17NewData-deletion cascade + server-side Meta CAPI on lead capture Apr 17NewBilling plan enforcement + auto-send email verification Apr 17FixedRemove sienna gold from global error boundary Apr 17NewPMS auto-processor cron — unblocks intelligence tabs Apr 17FixedSecurity — Twilio sig verify, Meta CAPI CSRF, admin-key scopes, cron alerts Apr 17NewDesign system + hero + admin shell pass Apr 17- Apr 17
NewFunnels backend — schema, routes, drip/lead integration Apr 17NewAdd soft-delete for leads in pipeline Apr 6FixedQA fixes — lint errors in video-generator, data-retention, onboarding Apr 6FixedUse Web Crypto API in CSRF lib for edge runtime compatibility Apr 6Fixed15 split 14 mega-components into focused subcomponents Apr 6NewAdd PMS report upload pipeline — portal upload + admin processing queue Apr 6Fixed23 extract shared SQL queries into facility-analytics module Apr 6Fixed22 add runtime enum validation constants and helpers Apr 6Fixed21 add data retention cron for unbounded log tables Apr 6Fixed20 add soft delete pattern for key business entities Apr 6Fixed17 add security headers and CSP in report-only mode Apr 6Fixed16 add cron runner with retry logic and failure notifications Apr 6Fixed14 make updated_at fields non-nullable with @updatedAt Apr 6Fixed13 expand env var validation with feature-level warnings Apr 6Fixed12 enrich Sentry with route context, header scrubbing, and noise filtering Apr 6Fixed11 add structured error logging with Sentry integration Apr 6Fixed10 replace shared admin secret with per-admin API keys Apr 6Fixed07 add missing @relation and cascade deletes to orphan models Apr 6Fixed05 wrap all multi-step writes in Prisma transactions Apr 6Fixed04 add CSRF protection to all state-changing endpoints Apr 6Fixed03 remove legacy base64 session tokens Apr 6FixedMatch portal login to 4-digit code — API now generates 4 digits Apr 2FixedPortal login code UI — change from 4 digits to 6 to match API Apr 2FixedAdd missing social-content-calendar component Apr 2FixedComprehensive security hardening + ship readiness remediation Apr 2FixedFinal sweep — uuid casts on 9 files + jsonb casts on churn-predictions Apr 2FixedAdd loading state to avatar remove button Apr 2FixedNormalize invite email to lowercase before DB insert Apr 2FixedAdd ::uuid casts to 10 more files — complete sweep Apr 2FixedPentester audit — XSS, date overflow, missing uuid/jsonb casts Apr 2FixedStripe cancel check, cron collision, avatar upload UX Apr 2FixedAvatar persistence, cron atomicity, invite flow, button color Apr 2FixedThorough audit pass on tasks 06+08 — uuid casts, jsonb casts, cron fixes Apr 2FixedEmail subject escaping, cron XSS, skeleton count, button color Apr 2FixedSecurity issues in avatar upload and invite email Apr 2FixedSettings status check + cleanup cron cascade safety Apr 2Fixed08 replace all $queryRawUnsafe with parameterized queries Apr 2NewComplete settings & account management (roadmap task 07) Apr 2Fixed02 apply rate limiting to all API routes Apr 2NewComplete onboarding checklist (roadmap task 05) Apr 2Fixed06 fix unbounded cron loops with batching and time budgets Apr 2Fixed01 remove --accept-data-loss, switch to prisma migrate deploy Apr 1