← back to Projects Agentabrams
Retire wallco.ai from projects gateway (410-dead, superseded by wallpapersback)
e451721847eecc75b0246c0f3ec8918dcde804e6 · 2026-07-28 15:27:34 -0700 · Steve Abrams
Files touched
M build-projects.jsM projects.json
Diff
commit e451721847eecc75b0246c0f3ec8918dcde804e6
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Jul 28 15:27:34 2026 -0700
Retire wallco.ai from projects gateway (410-dead, superseded by wallpapersback)
---
build-projects.js | 9 ++++++++-
projects.json | 13 ++-----------
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/build-projects.js b/build-projects.js
index e9c1e95..3086198 100644
--- a/build-projects.js
+++ b/build-projects.js
@@ -18,6 +18,12 @@ const cp = require('child_process');
const HOME = process.env.HOME;
const PROJECTS_DIR = path.join(HOME, 'Projects');
+// Retired projects — never surface in the viewer even if a stale .deploy.conf
+// HEALTH_URL or a lingering pm2 port would otherwise auto-discover them.
+// wallco.ai is dead (domain returns 410 Gone), superseded by wallpapersback
+// (retired 2026-07-28, per Steve). Add a slug here to permanently kill its tile.
+const RETIRED = new Set(['wallco-ai']);
+
// slug -> { slug, name, local, domain }
const map = new Map();
const get = (slug) => {
@@ -40,7 +46,7 @@ const CATEGORIES = [
function categorize(slug) {
const s = slug.toLowerCase();
const rules = [
- ["Wallpaper's Back & Patterns", /^wpb-|pattern-vault|patterndesignlab|wild-wallcoverings|wallco-ai/],
+ ["Wallpaper's Back & Patterns", /^wpb-|pattern-vault|patterndesignlab|wild-wallcoverings/],
['DW Vendor Lines', /-internal$|-line-viewer$|-onboard$|-naturals$|^schumacher|^muralsource|^reidwitlin|viewer-local|all-designerwallcoverings/],
['Consulting & Client Sites', /consulting|fantasea|prestige-car-wash|norma-sdcc/],
['DW Catalog & Marketing', /^dw-|trending-dw|colorwheel|instagram-agent|^new-engine$/],
@@ -112,6 +118,7 @@ for (const dir of fs.readdirSync(PROJECTS_DIR)) {
// Keep only projects that have SOMEWHERE to point (a domain or a live port).
const out = [];
for (const r of map.values()) {
+ if (RETIRED.has(r.slug)) continue;
if (!r.domain && !r.local) continue;
const kind = r.domain ? 'public' : 'local';
const target = r.domain ? `https://${r.domain}` : `http://127.0.0.1:${r.local}`;
diff --git a/projects.json b/projects.json
index 432cca9..4554c04 100644
--- a/projects.json
+++ b/projects.json
@@ -291,9 +291,9 @@
"slug": "homesonspec",
"name": "Homesonspec",
"kind": "local",
- "target": "http://127.0.0.1:3100",
+ "target": "http://127.0.0.1:9799",
"domain": null,
- "port": 3100,
+ "port": 9799,
"category": "Directories & Verticals"
},
{
@@ -557,15 +557,6 @@
"port": 9931,
"category": "DW Vendor Lines"
},
- {
- "slug": "wallco-ai",
- "name": "Wallco AI",
- "kind": "public",
- "target": "https://wallco.ai",
- "domain": "wallco.ai",
- "port": null,
- "category": "Wallpaper's Back & Patterns"
- },
{
"slug": "wild-wallcoverings",
"name": "Wild Wallcoverings",
← 88133e6 categorize new-engine under DW Catalog & Marketing
·
back to Projects Agentabrams
·
chore: v0.2.0 → v0.2.1 (session close — wallco.ai retirement 92b9487 →