7.4 KiB
7.4 KiB
Changelog
All notable project changes should be recorded here before or with the matching Git commit.
This project uses Git as the primary rollback trail. The .old convention is reserved for risky manual rewrites, legacy file replacement, or generated artifact recovery where a second local copy is useful before editing.
If .old snapshots are created, move them to an external archive safe outside the repo once the corresponding Git history is committed and pushed.
2026-07-11
Changed
- Moved the canonical project remote from GitHub to Christ IT Gitea at
https://git.christit.com/technical-services-exchange/technical-services-exchange.git. - Updated installer defaults and deployment documentation so future installs and updates pull from Christ IT Gitea.
- Formalized the backup convention: Git is the normal rollback trail, and any future
.oldsnapshots should be moved to an external safe outside the workspace instead of retained in the repo.
2026-07-10
Added
- Added a Phase 1 UI system pass with dark/light theme support, shared page/action/stat components, a product-focused home page, and a more useful dashboard.
- Added roadmap guardrails for open-source-friendly dependencies, public themes, and future license audits.
- Documented
pdo_sqliteandsqlite3as required PHP extensions for SQLite-backed local tests and first-pass deployments. - Documented the preferred local-to-Gitea-to-remote-update workflow and the ChristIT conversion from rsync test deploy to Git checkout.
- Added Phase 2 directory quality improvements with advanced provider/buyer filters, sort controls, profile badges, rating-aware cards, result counts, and empty states.
- Added Phase 3 asset and storage management with configurable attachment disk/root/size/MIME policy, image previews, file metadata display, attachment deletion, update-script storage linking, and upload policy tests.
- Added Phase 4 work-order and profile depth with structured work-order setup, checklist completion, evidence rules, change requests, print packets, structured provider services/tools/certifications, structured buyer policies/locations, and public/private profile section controls.
- Added Phase 5 reputation governance with explicit review category definitions, buyer/provider-specific review dimensions, reviewee responses, review report flow, admin moderation controls, moderation status tracking, a review edit window, and imported-history labeling.
- Added Phase 6/7 scope and contact safeguards with structured job scope fields, scope clarity and risk badges, support/contact certification, work-order scope/contact snapshots, first-class change requests, contact/support event logging, reason-coded disputes, and print-packet support.
- Added Phase 8/9 marketplace matching with a dense available-work board, category/level/safety filters, technician level definitions, normalized taxonomy terms, provider tag assignment, and self-declared evidence-source tracking.
- Added the guided imported-history wizard with structured work categories, imported endorsements, operational metrics, selected review excerpts, public visibility controls, proof attachments, and admin verification status.
- Added post-work provider tag verification so buyers can confirm/dispute observed technician level and declared provider tags after completed work orders, with buyer-endorsed tag evidence shown on provider profiles.
- Added Phase 11A mobile-safe API actions with versioned work-order endpoints, token ability checks, participant authorization, checklist/status/message/evidence/contact/running-late/schedule/dispute actions, mobile event audit records, optional geolocation evidence, API throttling, and baseline security headers.
- Added Phase 12A/13A notification and admin governance controls with notification preference UI, event-level notification gating, moderation reports for profiles/jobs/attachments, reusable audit logs, and expanded admin triage panels.
- Added Phase 14A deployment/scaling hardening with high-use database indexes, backup and health-check scripts, optional pre-update backups, and production notes for queue workers, scheduler, PHP-FPM, Redis, storage scaling, log rotation, and database scaling.
- Added Phase 15A UX/accessibility polish with shared empty states and controls, labeled job filters, active filter badges, mobile job cards, dense work-order table, direct print access, mobile navigation accessibility, and improved work-order print packets.
- Created the Laravel Provider Exchange prototype with Breeze authentication, seeded demo users, and role support for admins, providers, buyers, and hybrid accounts.
- Added provider and buyer profile management with service areas, profile details, and external profile snapshot records.
- Added social posts, buyer job posts, provider quotes, quote revisions, quote decline flow, and buyer quote acceptance.
- Added work orders with buyer/provider participants, status transitions, deliverables, evidence attachments, completion notes, and work-order messages.
- Added mutual reviews, category review metrics, peer-review disputes, dispute comments, evidence files, and structured dispute votes.
- Added database notifications and a notification inbox with unread counts and mark-read actions.
- Added a universal polymorphic rating layer for provider profiles, buyer profiles, job posts, work orders, and disputes.
- Added search/filter forms for provider, buyer, and job directories.
- Added MIT license and first-pass open-source/platform guardrails.
- Added deployment documentation covering runtime requirements, ChristIT
/tsedeployment assumptions, and remote change tracking. - Added optional route base-path config and a checked-in Nginx helper for the ChristIT
/tseLaravel deployment. - Added first-pass Ubuntu install and update scripts for Git-backed deployments.
Verified
php artisan testpassed with 35 tests and 116 assertions.php artisan testpassed under WSL with 44 tests and 195 assertions after Phase 5.php artisan testpassed under Windows PHP with 46 tests and 216 assertions after enablingpdo_sqlite,sqlite3,fileinfo, andgdinC:\tools\php85\php.ini.php artisan testpassed under Windows PHP with 48 tests and 228 assertions after Phase 8/9.php artisan testpassed under Windows PHP with 49 tests and 239 assertions after the guided imported-history wizard.php artisan testpassed under Windows PHP with 51 tests and 256 assertions after post-work provider tag verification.php artisan testpassed under Windows PHP with 55 tests and 285 assertions after Phase 11A mobile API and security hardening.php artisan testpassed under Windows PHP with 57 tests and 301 assertions after Phase 12A/13A notification preferences and admin governance.php artisan migrate:fresh --seed --env=testing,php artisan testwith 57 tests and 301 assertions,npm run build, andbash scripts/health-check.shpassed after Phase 14A deployment/scaling hardening.php artisan testwith 57 tests and 301 assertions andnpm run buildpassed after Phase 15A UX/accessibility polish.npm run buildpassed with a production Vite build.https://christit.com/tse/loginloads publicly.- Seeded admin login succeeds on
https://christit.com/tseand reaches/tse/dashboard.
Notes
- Existing Git subjects are terse because commit message input in this environment repeatedly collapsed longer subjects to
Add. This changelog is the durable human-readable record for those early commits.