title: "Git Sync, Hygiene & Sledgehammer Cleanup"
type: ticket
subtype: debt_cleanup
purpose: "Sync all repos, purge build artifacts from Git, fix 3 MVP bypasses so Next.js compiles strictly."
Synchronize all 5 repositories on the Hetzner server, purge tracked build artifacts, and eliminate all 3 TypeScript/runtime bypasses so the DEVXIO portal compiles with strict checking enabled.
npm install. These are fixes to existing code.http://89.167.96.154:3002 must keep rendering after each fix.git log --oneline -1 matches remote)..next/ directory is in .gitignore and removed from Git tracking in STRUXIO_OS.infrastructure_secrets.enc.yaml and struxio-vertex-service-account.json are confirmed in .gitignore (NOT tracked as plaintext).next.config.ts has ignoreBuildErrors: false (or removed) AND ignoreDuringBuilds: false (or removed).as any casts on the Zustand theme store in ThemeInit.tsx and WorkspaceDashboard.tsx.localhost).npx tsc --noEmit exits 0. npm run build exits 0.cd ~/STRUXIO_Workspace
for repo in STRUXIO_Business STRUXIO_Design STRUXIO_Logic STRUXIO_OS STRUXIO_App; do
echo "--- Syncing $repo ---"
cd $repo && git fetch origin && git pull origin main && cd ..
done
Verify each repo is at HEAD. Report any merge conflicts immediately — do NOT force-resolve.
STRUXIO_OS/.gitignore:07_engineering/01_frontend/devxio_portal/.next/
cd STRUXIO_OS
git rm -r --cached 07_engineering/01_frontend/devxio_portal/.next/
git commit -m "chore(frontend): remove .next build cache from git tracking"
infrastructure_secrets.enc.yaml and struxio-vertex-service-account.json are in .gitignore. If NOT:echo "01_state/infrastructure_secrets.yaml" >> .gitignore
echo "01_state/struxio-vertex-service-account.json" >> .gitignore
# DO NOT git rm these if they contain real secrets — flag to Founder immediately
grep -r "ThemeState" STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/ --include="*.ts" --include="*.tsx" -l
tokens shape is expected:grep -rn "tokens\." STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/ --include="*.ts" --include="*.tsx"
grep -rn "Object.entries" STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/ --include="*.ts" --include="*.tsx"
tokens to the ThemeState interface with correct type.create() initializes tokens to a valid default (not undefined).npx tsc --noEmit — note error count.as any CastsThemeInit.tsx — remove as any on store reference.WorkspaceDashboard.tsx — same.as any.npx tsc --noEmit — confirm these files have zero errors.grep -rn "ws://localhost" STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/ --include="*.ts" --include="*.tsx"
grep -rn "new WebSocket" STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/ --include="*.ts" --include="*.tsx"
localhost with dynamic resolution:const wsHost = process.env.NEXT_PUBLIC_API_URL
|| (typeof window !== 'undefined' ? window.location.hostname : 'localhost');
NEXT_PUBLIC_API_URL exists in the Docker .env or docker-compose.yml. If missing, add NEXT_PUBLIC_API_URL=89.167.96.154.next.config.ts.typescript.ignoreBuildErrors to false (or delete the line).eslint.ignoreDuringBuilds to false (or delete the line).npm run build. Must exit 0.STRUXIO_OS/.gitignore
STRUXIO_OS/07_engineering/01_frontend/devxio_portal/.gitignore
STRUXIO_OS/07_engineering/01_frontend/devxio_portal/next.config.ts
STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/[store directory]/[theme store file]
STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/[components]/ThemeInit.tsx
STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/[components]/WorkspaceDashboard.tsx
STRUXIO_OS/07_engineering/01_frontend/devxio_portal/src/[hooks or utils]/[websocket file]
(Exact paths TBD by Sonnet upon grep discovery in Sub-Tasks C and E)
fix/TICKET_031_debt_cleanup branch.tsc --noEmit error count.If any sub-task breaks the live render:
git stash current changesSTRUXIO.ai // Confidential & Proprietary // Generated by Claude Opus 4.6 (Principal Architect) // © 2026