← back to Commercialrealestate
chore: lint, refactor (path.join, delete stale note keys), v-minor (per-listing broker + notes + cost-logging) — session close
685110b1d8ae327336813b12b8db7a2fb8d3df47 · 2026-08-03 09:13:31 -0700 · Steve Abrams
Files touched
M package-lock.jsonM package.jsonM public/condos.htmlM scripts/fetch-condos-redfin.js
Diff
commit 685110b1d8ae327336813b12b8db7a2fb8d3df47
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 3 09:13:31 2026 -0700
chore: lint, refactor (path.join, delete stale note keys), v-minor (per-listing broker + notes + cost-logging) — session close
---
package-lock.json | 4 ++--
package.json | 2 +-
public/condos.html | 2 +-
scripts/fetch-condos-redfin.js | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 750f671..ddae611 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "commercialrealestate",
- "version": "0.15.1",
+ "version": "0.16.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "commercialrealestate",
- "version": "0.15.1",
+ "version": "0.16.0",
"dependencies": {
"better-sqlite3": "^12.11.1",
"express": "^4.22.2",
diff --git a/package.json b/package.json
index 14f391f..88e8d02 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "commercialrealestate",
- "version": "0.15.1",
+ "version": "0.16.0",
"private": true,
"description": "LA County CRE investment explorer — multi-firm sourced, Census + assessor enriched, Qwen-analyzed",
"scripts": {
diff --git a/public/condos.html b/public/condos.html
index d134acd..ce44328 100644
--- a/public/condos.html
+++ b/public/condos.html
@@ -409,7 +409,7 @@ $('#grid').addEventListener('input',e=>{
clearTimeout(_noteTimers[id]);
_noteTimers[id]=setTimeout(async()=>{
try{ await fetch('/api/condo-notes/'+encodeURIComponent(id),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({note:val})});
- NOTES[id]=val.trim()?{note:val,updated_at:new Date().toISOString()}:undefined;
+ if(val.trim()) NOTES[id]={note:val,updated_at:new Date().toISOString()}; else delete NOTES[id];
if(stat){ stat.textContent='✓ saved'; setTimeout(()=>{if(stat)stat.textContent='';},1500); }
}catch(_){ if(stat) stat.textContent='⚠ not saved'; }
},600);
diff --git a/scripts/fetch-condos-redfin.js b/scripts/fetch-condos-redfin.js
index dd97d32..408e999 100644
--- a/scripts/fetch-condos-redfin.js
+++ b/scripts/fetch-condos-redfin.js
@@ -222,7 +222,7 @@ function condosFromCSV(text, regionName) {
const row = { ts: new Date().toISOString(), api: 'browserbase', vendor: 'Browserbase',
app: 'commercialrealestate/fetch-condos-redfin', note: `Redfin LA condo re-scrape (${sessions} sessions, ${condos.length} condos)`,
units: [{ qty: sessions, unit: 'session', rate: SESSION_COST, subtotal: +actualCost }], cost_usd: +actualCost };
- fs.appendFileSync(process.env.HOME + '/.claude/cost-ledger.jsonl', JSON.stringify(row) + '\n');
+ fs.appendFileSync(path.join(process.env.HOME, '.claude', 'cost-ledger.jsonl'), JSON.stringify(row) + '\n');
process.stderr.write(` ✔ logged $${actualCost} to cost-ledger (AbramsEgo budget tracking)\n`);
} catch (e) { process.stderr.write(' cost-ledger log skipped: ' + e.message + '\n'); }
}
← 640b812 fetch-condos-redfin: log Browserbase spend to cost-ledger fo
·
back to Commercialrealestate
·
condos viewer: always-on created date+time chip on cards + d f7b6b05 →