Last updated: 2026-07-12

🤖
AI Session Handoff — Premier Realty Portal

Read before making any changes. Same FUSE-safe rules apply as all SONAN portals.

Critical Rules

RuleWhy
Write to /tmp first — never FUSE path directlyFUSE silently truncates large writes
Use /tmp/rp-git — never git -C <FUSE_path>FUSE git config unreadable
Strip null bytes before hashingEdit/Write tools append null bytes on FUSE
Remove ALL unused TypeScript varsTS6133 = Pages build failure
App.tsx at src/App.tsxmain.tsx imports ./App from src root
Parent = last PUSHED SHAIntermediate commits cause push rejection
Every new portal repo first push: delete lock, rewrite config, add remote, then push.git/config is always corrupted on FUSE and a .git/config.lock is left behind — run in order: del .git\config.lock then echo [core] > .git\config then echo repositoryformatversion = 0 >> .git\config then echo filemode = false >> .git\config then echo bare = false >> .git\config then git remote add origin <url> then git push origin <sha>:refs/heads/main

Where Things Live

ItemPath
Project rootE:\Claude_Projects\sonan-trackers\realtor-portal\
Worker envpremierrealty in wrangler.toml
D1 ID788cf2ea-86f8-4b88-bf0a-06277168455e
Public showings routePOST /api/showings-public — no auth, creates showing record
Listing status flowActive → Under Contract → Sold (or Withdrawn / Expired)

Next Tasks

Portal is deployed and live at premierrealty.sonandigital.com. Most likely next feature: email notification to admin when a new showing request comes in from the public form. Add Resend call in Worker's POST /api/showings-public handler, set RESEND_API_KEY as Worker secret.