Recurring work order reconciliation and Kanban triage for Property Meld-style CSV exports.
MeldSync turns repeated maintenance CSV exports into operational memory.
It helps answer:
- Which work orders are new since the last export?
- Which records changed status?
- Which records disappeared from the latest export and need verification?
- Which manual corrections should survive future imports?
- Which properties have the oldest unresolved work?
- Which original tickets are effectively resolved by linked follow-up tickets?
This repository currently contains a local browser-based proof of concept.
Built capabilities:
- Strict CSV schema validation
- Property Meld export parsing
- Reconciliation engine
- Idempotent re-import behavior
- Sticky manual status overrides
- Manual/import conflict visibility
- Manual/import conflict queue
- Stale record detection
- Import preview before commit
- Manual-conflict warning before import commit
- Clickable import preview drill-down
- Restore backup preview before commit
- Recent import history
- Import history detail drawer
- Local browser persistence
- Owner local data health panel
- JSON backup and restore
- Deep backup validation
- Kanban board by effective status
- Property-level triage panel
- Record notes
- Linked-record effective resolution
- Per-record history
- Synthetic public demo data
- Public demo and owner workspace modes
- In-app demo QA status panel
- Guided demo walkthrough
- Public demo data-boundary notice
- Public demo portfolio snapshot
- Public demo operational brief
- Public demo proof controls
- Aging risk panel
- Public demo proof pack
- Public demo portfolio view
- Public demo portfolio copy pack
- Public demo capture presets
- Public demo websuite handoff kit
- Portfolio-safe screenshot assets
- Owner production gate
The real Property Meld CSV export is private and must not be committed or published.
The public demo uses synthetic data only. The real export filename pattern is ignored by .gitignore.
MeldSync currently has two local POC modes:
Public Demostarts with synthetic data, hides private import/backup/reset controls, and shows only the visitor-safe walkthrough.Owneruses local browser storage and exposes CSV import, backup, restore, reset, and internal QA checks.
This is a static POC boundary, not production authentication. A hosted product would need backend auth before storing or syncing private data.
Requirements:
- Node.js 24 or newer
Start the local preview:
node scripts/serve.mjsOpen:
http://localhost:4173
Run tests:
node --test tests/*.test.mjsRun syntax checks:
node --check src/main.js
node --check src/domain.jsRun the full local validation helper:
node scripts/validate.mjsindex.html Browser app entry
src/domain.js CSV parser and reconciliation engine
src/main.js UI rendering and local interactions
src/demoData.js Synthetic demo CSV snapshots
src/portfolioHandoff.js Portfolio route and asset handoff contract
src/qa.js Demo QA and walkthrough scenario
src/storage.js Browser localStorage helpers
tests/reconcile.test.mjs Core reconciliation tests
scripts/serve.mjs Local static preview server
docs/portfolio Synthetic portfolio screenshot assets and manifest
ROADMAP.md- build phases and product directionPHASE_STATUS.md- current completed phase and next blockersARCHITECTURE.md- data flow and domain model notesDEMO_STRATEGY.md- public demo positioningDEPLOYMENT_READINESS.md- hosted auth and deployment gatePUBLIC_DEMO_CLOSEOUT.md- safe public demo route and hosting pause noteQA_CHECKLIST.md- browser/manual QA checklistGITHUB_HANDOFF.md- instructions for creating and connecting a GitHub repoBUILD_LOG.md- detailed phase-by-phase build notesCOMMAND_LOG.md- command, purpose, and outcome tracker
Phase 7A browser QA and UX hardening are complete for the local POC. Phase 7B public demo packaging is complete for now: use locked public preset routes such as ?surface=public&view=portfolio&preset=followup plus docs/portfolio assets for the portfolio websuite. Owner mode remains local-only until real backend auth and protected storage exist.