Spaces:
Running
Running
Commit History
-
Mission M-E β Observability & Testsβ
Ashraf Al-Kassem +1: Claude Sonnet 4.6- ADK callback handler (callbacks.py): logs all lifecycle events to RuntimeEventLog - agent.{name}.started/completed, agent.llm_request/response, agent.error - tool.{name}.started/completed, tool error events - _redact_sensitive() strips access_token, api_key, password, token fields - runner.py: attaches LeadPilotCallbackHandler to agent after build_orchestrator() - tracks turn duration + records agent.turns_processed / avg_turn_duration_ms metrics - metrics_service.py: adds gauge() method (overwrites, not additive) - admin.py: GET /executions/{instance_id}/trace β returns chronological event timeline - 8 new tests: test_callbacks.py (5 unit), test_e2e_agent_flow.py (3 E2E) - Frontend: execution trace timeline page at /admin/executions/[executionId] - Frontend: monitoring/page.tsx β Agent Metrics tab + View Trace links in Executions tab - docs/missions/event-types.md: full event taxonomy reference Total tests: 360 (all passing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthrβ¦87e5ad2
-
feat: Mission 34 β Admin Plan Overrides + Expiry + Audit Trailβ
Ashraf Al-Kassem +1: Claude Sonnet 4.6- Add PlanOverride model (time-bound workspace plan grants) - Update entitlement resolver: override > base plan precedence with self-heal - Expose plan_source + override_expires_at in GET /entitlements - Add admin_plans.py: 3 endpoints (plan-status, plan-override, revoke) - Celery beat job expire_plan_overrides_task every 5 min - Admin workspace detail UI: Plan Override card with apply/revoke form - 3 admin-api.ts methods for override CRUD - Alembic migration m3n4o5p6q7r8 for planoverride table - 6 passing tests: apply, self-heal, worker expiry, revoke, dedup, audit Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>a21ab3d
-
feat: Mission 29 β Prompt Studio Enhancements + Auth Fixes + User Seedingβ
Ashraf Al-Kassem +1: Claude Opus 4.6Mission 29: Knowledge chunking (DOCX/XLSX support, keyword retrieval), dynamic qualification criteria (relational CRUD), AI step output schema, and prompt compiler integration for all three. Auth fixes: seed demo + admin users on startup, fix Google OAuth email_verified_at bug, fix admin-api.ts 403 logout, comprehensive auth test suite (19 tests covering studio + admin flows). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>a5f93e1
-
feat: Mission 27 β Automation Builder v2 + Template Catalog Foundationβ
Ashraf Al-Kassem +1: Claude Sonnet 4.6- Visual canvas editor (ReactFlow @xyflow/react v12) with TriggerNode, ActionNode, NodePalette, NodeConfigPanel - FlowDraft model: per-flow mutable builder graph, separate from immutable FlowVersion - Builder v2 endpoints: GET/PUT draft, validate, publish, simulate, rollback, versions - builder_translator.py: validate_graph, translate, simulate β 21 unit tests passing - AutomationTemplate + AutomationTemplateVersion with admin CRUD + workspace clone - GET/POST /templates/ workspace catalog; POST /templates/:slug/clone - Admin: GET/POST /admin/templates, versions, publish endpoints - Alembic migration g7h8i9j0k1l2 + merge migration 2163b9b16da8 (M20+M27) - Frontend: automations-api.ts, templates-api.ts; admin/templates pages - All 57 tests passing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>d4d1956
-
feat: Mission 19+20 β Catalog Standardization + Prompt Studio Knowledge Base v2 + Dynamic Lead Qualificationβ
Ashraf Al-Kassem +1: Claude Opus 4.6Mission 19: Catalog registry with standardized provider/trigger/action metadata, validation, and frontend catalog client. Mission 20: Single source-of-truth prompt compiler replacing two divergent AI context paths. Knowledge files now injected into AI context. Automation AI steps use goal/tasks/extra_instructions. Dynamic lead qualification with workspace-level questions/statuses and admin defaults. - 118 tests passing (was 57), frontend build clean Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9d062e9 -
feat: Mission 18 β High-Volume Runtime Event Trailβ
Ashraf Al-Kassem +1: Claude Opus 4.6Unified runtime event logging across all subsystems (webhooks, runtime execution, dispatch, email, inbox, Zoho sync) with retention policies, correlation IDs, and support replay capabilities. - RuntimeEventLog model with 4 composite indexes + JSON related_ids - Non-throwing log_event() service with payload redaction (SG.*, Bearer, truncation) - Instrumented ~30 flows: webhook (5), runtime (8), dispatch (6), inbox (2), email (3) - Support Timeline API: workspace-scoped with JSON path filters - Admin Runtime Events: cross-workspace list/detail with full filter set - Frontend: TimelinePanel in inbox + admin runtime-events page - Celery beat daily purge (03:00 UTC, batch 1000) - Alembic migration e5f6g7h8i9j0 - 8 unit tests + 98 E2E tests passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>eab9f11
-
feat: Mission 17 β Enterprise Audit Logging Frameworkβ
Ashraf Al-Kassem +1: Claude Opus 4.6- Extend AdminAuditLog with 9 new columns (actor_type, outcome, ip_address, user_agent, request_path, request_method, error_code, error_message, agency_id) - Make actor_user_id nullable for failed login attempts on unknown users - Create audit_event() service with auto IP/UA/path extraction, metadata redaction, field truncation, and non-throwing error handling - Instrument 29 handlers across 8 files: auth (5), workspaces (4), integrations (3), automations (2), dispatch (1), inbox (2), admin (6), agency (6) - Add workspace-scoped GET /audit-logs endpoint with 7 filters + detail - Enhance admin GET /admin/audit-log with workspace_id, agency_id, actor_type, outcome, date range, and correlation_id filters + detail endpoint - Build dashboard Activity Log page with action/outcome badges, filters, expandable rows, and pagination - Enhance admin audit log page with actor type badges, correlation ID copy, request/IP/error detail view - Add 20 new tests (85 total pass, 0 fail) Co-β¦6d44285 -
Ready for deployment to HF and GitHub
Ashraf Al-Kassema3ba894 -
feat: Mission 14+15 β commercial entitlements + agency reseller modelβ
Ashraf Al-Kassem +1: Claude Opus 4.6Mission 14: Plan-based entitlements with per-module hard limits, usage metering, and admin plan management UI. Adds Plan, PlanEntitlement, WorkspacePlan, and UsageMeter models. Entitlement enforcement service with check_and_increment/batch helpers. Admin /plans CRUD page. Mission 15: Agency reseller model enabling multi-workspace management. Adds AgencyAccount, AgencyMember, WorkspaceOwnership models with RBAC (owner/admin/operator/viewer roles). Agency router with 9 endpoints for lifecycle, member management, and workspace provisioning. Lazy WorkspaceMember provisioning via extended get_active_workspace(). max_workspaces limit enforcement via plan entitlements. Admin agency management (list/detail/suspend/plan-assign). Frontend agency console and workspace switcher replacing hardcoded placeholder. All 56 unit tests pass. 55/55 E2E checks verified on localhost. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>2bb79a1 -
fix: eliminate 307 redirects that break login and API calls behind HF proxyβ
Ashraf Al-Kassem +1: Claude Opus 4.6The previous trailing-slash normalization in api.ts inadvertently broke login (POST /auth/login/ β 307 β /auth/login, losing FormData). Root cause: FastAPI routes defined as @router.get("/") only match paths WITH trailing slash, causing 307 redirects for requests WITHOUT one. Behind HuggingFace's reverse proxy, these redirects silently fail. Fix: Change route definitions from "/" to "" so they match the exact paths the frontend sends (no trailing slash). Revert the frontend trailing-slash hack. Routes fixed: prompt_config (GET, POST), integrations (GET), workspaces (GET, POST), automations (GET). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>721b3fc -
fix: resolve Prompt Studio and Integration Hub frontend failuresβ
Ashraf Al-Kassem +1: Claude Opus 4.6- Add trailing slash normalization to api.ts and admin-api.ts to prevent FastAPI 307 redirects that fail behind HuggingFace's reverse proxy - Add production origin (hf.space) to CORS allow_origins in main.py - Fix Integration Hub silent failure: show all provider cards with error banner when backend is unreachable instead of blank page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>38213a5
-
feat: LeadPilot β full project commit (Missions 1β13)β
Ashraf Al-Kassem +1: Claude Sonnet 4.6Backend (FastAPI + SQLModel + Alembic, Python 3.9): - Auth: signup, login, forgot/reset, email verification, OAuth (Google) - Workspace management + multi-tenancy + member invites - Integrations: Zoho CRM, WhatsApp, Meta webhooks - Automation engine: flows, versions, execution engine - Prompt studio: configs, versions, test chat - Email system: SendGrid/SMTP/console, outbox, audit log - Dispatch queue: outbound messaging + retry/dead-letter - Inbox + human takeover - Analytics + diagnostics - Admin control plane: RBAC, module toggles, impersonation (Mission 13) - 57 tests, all passing Frontend (Next.js 16 + React 19 + TypeScript + Tailwind 4): - Full product UI across all missions - Admin portal: login, users, workspaces, modules, audit log, monitoring Deployment: Docker, nginx, HuggingFace Spaces, GitHub Actions CI Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>8d7950f