This document defines how to extend and operate this repository safely.
Before any risky or broad change:
./ops/restore_point.sh pre-changeAfter each completed implementation phase:
./ops/restore_point.sh phase-nameTags are annotated and include branch + commit metadata.
All client-side feature flags are defined in apps/web/public/assets/config.js.
Current flags:
enableWsenablePresence
The enableCrdt flag is internal only (no URL override). Production always uses the Yjs/CRDT sync path; the editor simulator overrides window.MZ_FLAGS.enableCrdt=false to drive its localStorage-mocked legacy path.
How to add a new flag safely:
- Add default value in
defaultsinsideapps/web/public/assets/config.js. - Keep URL override pattern
ff_<flagName>=0|1. - Guard behavior at one entry point (avoid scattered checks).
- Keep backward compatibility when the flag is missing.
- Document the new flag in
README.md. - Verify with both flag states (
0and1).
Required before deploy:
./ops/verify_local.shRecommended for live path validation:
APP_CHECK_TOKEN="..." ./ops/verify_local.shDeploy only when all checks are green.
Safe local cleanup targets (regeneratable):
.firebase/- all
.DS_Store - all
node_modules/ *.log
Use:
./ops/clean_local.sh- Main git root is this folder (
malzispace). - Scripts enforce root correctness via
tools/bin/assert_repo_root.sh. - Do not use a parent git repository for tags, deploys, or restore points.