LAUNCH-CRITICAL FIX
The index.html nav linked to /privacy.html and /terms.html but neither
existed → 404s on every visit to those nav links. This was a hard launch
blocker for any commercial use of Dealix in Saudi.
NEW PAGES (8)
Legal & Compliance:
- landing/privacy.html — PDPL-aligned Arabic privacy policy with 13 sections
covering scope/data collected/lawful bases (Art. 5/6)/purposes/sharing/
international transfers/retention (3-tier)/security (Art. 19-20)/
data subject rights (Art. 4-9)/cookies/breach response/contact
- landing/terms.html — Saudi B2B terms of service with 15 sections
covering acceptance/service description/account/acceptable use/data
ownership/AI features/pricing+billing (4 tiers)/pay-per-result terms/
SLA per tier/IP/liability limits/termination/disputes (SCCA Riyadh)
Onboarding flow:
- landing/signup.html — 60-second signup with consent checkbox, plan
selector (5 plans incl. Pay-per-Result featured), POSTs to /api/v1/leads
- landing/welcome.html — 5-step onboarding checklist with progress bar
(subscribed → ICP → WhatsApp → Gmail → first Daily Run)
- landing/payment-success.html — post-Moyasar success page with txn details,
next-steps card, ZATCA invoice note, Customer Portal CTA
- landing/payment-cancelled.html — graceful failure page with common reasons
+ bank transfer alternative
Error pages:
- landing/404.html — branded not-found with quick-link nav back
- landing/500.html — server error with auto-generated reference ID for
support tracking + status page link
Sitemap & robots:
- landing/sitemap.xml — 27 URLs with proper changefreq + priority weights
- landing/robots.txt — allow legal pages, disallow internal pages
Master runbook:
- docs/LAUNCH_MASTER_RUNBOOK_AR.md — 10-step launch plan covering DNS,
Railway, env vars (full list), DB migrations, domain mapping, Moyasar,
WhatsApp WABA, email deliverability (SPF/DKIM/DMARC), observability,
beta day. Includes manual smoke-test bash recipes + KPIs for first 30
days + rollback plan.
VERIFICATION
- 33 landing HTML pages total (was 25)
- All 8 new pages: valid DOCTYPE + closing </html>, Arabic RTL, mobile-friendly
- pytest: 477 passed, 2 skipped (unchanged)
- index.html nav links no longer 404
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PROBLEM
The codebase used Python 3.11+ stdlib features (`from datetime import UTC`,
`from enum import StrEnum`) in 22 files, breaking local dev on Python 3.10
(Windows users) and any pytest run that imports the affected modules.
SOLUTION
1. New `core/_py_compat.py` providing UTC + StrEnum shims that:
- On 3.11+ re-export the stdlib names (zero overhead)
- On 3.10 fall back to `timezone.utc` and a (str, Enum) backport
2. All 22 affected files patched to import from the shim:
- core/utils.py, core/config/models.py
- api/routers/admin.py
- auto_client_acquisition/{ai/model_router, agents/{intake,icp_matcher},
v3/{memory,agents,compliance_os,market_radar},
personal_operator/{operator,memory,launch_report},
innovation/{proof_ledger_repo,command_feed_live}}.py
- autonomous_growth/agents/sector_intel.py
- dealix/{trust/{approval,tool_verification,policy},
observability/cost_tracker,
contracts/{evidence_pack,event_envelope,audit_log,decision},
classifications/__init__,
governance/approvals}.py
3. Three new test suites for previously-untested layers (54 tests):
- tests/unit/test_business_suite.py — gtm_plan, launch_metrics,
market_positioning, pricing_strategy, proof_pack, unit_economics,
verticals (28 tests covering plan recommendation, performance fee,
ROI math, account health grading, vertical playbook structure)
- tests/unit/test_innovation_suite.py — aeo_radar, command_feed,
deal_rooms, experiments, growth_missions, proof_ledger, ten_in_ten
(18 tests covering deterministic reproducibility, card type taxonomy,
pending-approval invariant, kill-mission visibility)
- tests/unit/test_ai_model_router.py — ModelTask + get_model_route +
estimate_model_cost_class + requires_guardrail (8 tests covering
enum integrity, route round-trip, guardrail bool contract)
VERIFICATION
- ast.parse green on all 22 patched files
- pytest tests/unit/ → 477 passed, 2 skipped (provider smoke needs API keys)
on Python 3.10.12 venv with project requirements installed
- No behavior change on 3.11+: the shim re-exports stdlib symbols
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add week-by-week GTM execution documents for outreach, demo/proposal engine, first paid close, pilot evidence loop, and governance KPI rhythm.
Wire all new artifacts into go-live revenue docs, source-of-truth index, tracks mapping, and architecture brief constitution paths for operational continuity.
Made-with: Cursor
Complete Tier-1 closure follow-through by wiring docs governance gates, RC release readiness checks, source-of-truth enforcement, executive weekly contract surface, and go-live severity notes.
Add full go-live revenue execution documentation set (production activation, real production playbook, trust expansion, first 3 clients, live deployment, and automated revenue engine) and register all canonical paths.
Made-with: Cursor
- Added 7 new apex-level agents (Sovereign Intelligence, Alliance Structuring, Due Diligence, Valuation, Exec Negotiator, Strategic PMO, Post-Merger Integration)
- Updated RAW Event Taxonomy in router to fully support HitL escalations, C-Suite reporting, and sovereign dashboards
- Re-architected Executor to support all 37 agents (mappings, tokens up to 8000 for apex, action triggers)
- Health check endpoints updated to validate the 37-agent ecosystem
- All tests passing
System is now fully aligned with the Dealix Autonomous Revenue & Strategic Growth OS execution plan.
Add revenue discovery APIs/services, launch verification gates, CI quality checks, and frontend E2E/docs updates to prepare the branch for production go-live.
Made-with: Cursor
- verify_frontend_openapi_paths: capture \\/api/v1/...\, strip queries, optional prefix match for {param} routes
- kill-port-3000.ps1: clearer messages when port is already free
Made-with: Cursor
- Move agent_system router to /api/v1/agent-system to avoid /agents conflicts
- Exempt demo UI API paths from internal token when DEALIX_INTERNAL_API_TOKEN is set
- Replace deprecated Query(regex=) with pattern= in intelligence
- GET / redirects to /api/docs; mount docs-assets + custom Swagger CSS
- Frontend: use getApiBaseUrl() for API URLs; fix intelligence dashboard base
- Add scripts/verify_frontend_openapi_paths.py; note in LAUNCH_CHECKLIST
Made-with: Cursor
Merged from VoXc2/dealix repository:
- api_key.py: APIKey model (hash, prefix, permissions, rate limit, expiry)
+ AppSetting model (key-value config with typed values)
- Both adapted to TenantModel (multi-tenant) + added Arabic fields
- Registered in models/__init__.py
This closes the "API key management" gap from the gap analysis.
Also includes production deployment guide with step-by-step instructions
for going from code to live product (~283 SAR/month operating cost).
https://claude.ai/code/session_01LsnvBa7HwF5hs99VZbgLGj
Recurring commission rules updated:
- Marketers: 6 months from client signup date (then stops)
- Team Leads / Regional Managers: 12 months override from their team
- This incentivizes continuous new client acquisition
- Managers benefit longer = incentive to build and maintain strong teams
https://claude.ai/code/session_01LsnvBa7HwF5hs99VZbgLGj