Skip to main content

Morphee — Test Results & Status

Version: V1.5.0-dev Last Updated: February 22, 2026 Total Tests: 5,388 (2,014 backend + 165 Rust + 3,016 frontend unit + 63 E2E + 5 SDK unit + 95 skipped + 30 Phase 6) Coverage: 84% (backend)


Automated Test Suite

Backend (pytest)

docker compose -f docker-compose.dev.yml exec -T backend pytest -q --cov=. --cov-report=term-missing

Result: 2,014 passed, 11 skipped (84% coverage) — 0 failures. All tests green as of Feb 22, 2026.

New test files since last snapshot:

  • test_identity_service.py (8 tests) — Child identity CRUD, PIN auth, parent-assisted auth
  • test_session_service.py (7 tests) — Morphee JWT issuance/verification, session lifecycle
  • test_verify_token_dual.py (4 tests) — Dual-path token routing (GoTrue vs Morphee)
  • integration/test_identity_api.py (6 tests) — Identity API endpoint integration tests
  • test_extension_models.py (16 tests) — Extension Pydantic models, permissions, resource limits
  • test_extension_manager.py (15 tests) — ExtensionManager + WasmExtensionInterface lifecycle
  • test_host_functions.py (17 tests) — WASM host functions with permission enforcement
  • test_wasm_runtime.py (12 tests, 11 skip if wasmtime unavailable) — WasmRuntime load/execute/unload
  • test_permissions.py (23 tests) — PermissionEnforcer, SSRF blocking, domain allowlists
  • test_resource_limiter.py (18 tests) — ResourceLimiter, fuel/memory/HTTP rate/timeout tracking
  • test_extension_signing.py (15 tests) — RSA-PSS signing, verify roundtrip, tamper detection
  • test_extension_audit.py (8 tests) — ExtensionAuditService, buffered writes, stats
  • test_registry.py (15 tests) — OCI RegistryClient search, pull, manifest, versions
  • test_api_extensions.py (16 tests) — Extension REST API endpoints (catalog, install, execute, audit)
  • test_dev_server.py (16 tests) — Dev server mock host functions, WasmDevRunner, file watcher
  • test_cli_init.py (5 tests) — CLI init command (project structure, Cargo.toml, manifest)
  • test_security_low.py (25 tests) — Low-severity security audit items
  • test_cache.py (10 tests) — in-memory cache fallback (utils/cache.py)
  • test_git_special_files.py (56 tests) — git special files parsing, 99% coverage
  • test_i18n.py (47 tests) — i18n module: t() lookup, interpolation, catalog completeness, 91% coverage
  • test_gdpr_integration.py (35 tests) — GDPR endpoints: consent CRUD, data export, account deletion
  • test_rate_limit.py (+4 tests) — Redis rate limiter: allow, block, fail-open, TTL
  • test_api_members.py (18 tests) — Members API: invites, member management
  • test_api_acl.py (17 tests) — ACL API: permissions, preferences, monitoring (all passing)
  • test_api_interfaces.py (33 tests) — Interfaces API: list, execute, config (all passing)
  • test_acl_service.py (35 tests) — ACL service unit tests (updated to match fixed implementation)
  • test_extension_oauth.py (14 tests) — Extension OAuth: authorize URL, callback, state validation, status
  • test_extension_updater.py (8 tests) — ExtensionUpdater: check_updates, apply_update, version comparison
  • test_editable_components.py (21 tests) — Editable UI: enable_editing, lock_editing, apply_edits actions, EditPermission model, ComponentSpec editable fields
  • test_biometric_service.py (12 tests) — Biometric enrollment: register face/voice, authenticate, delete, re-enrollment, error cases

Frontend Unit Tests (Vitest)

cd frontend && npm run test

Result: 3016 passed (0 failures). All tests green as of Feb 22, 2026.

New extension test files:

  • extensionStore.test.ts (8 tests) — Zustand extension store: catalog, install, enable/disable, execute
  • ExtensionCard.test.tsx (9 tests) — Card component: rendering, install/toggle, permissions display
  • InstallDialog.test.tsx (5 tests) — Install flow: confirm, error handling, success state

Coverage (Vitest v8):

MetricCoverage
Statements75.29%
Branches68.18%
Functions76.74%
Lines76.76%
Test SuiteTestsStatus
store/authStore.test.ts5Pass
store/taskStore.test.ts11Pass
store/spaceStore.test.ts11Pass
store/chatStore.test.ts29Pass
store/notificationStore.test.ts9Pass
store/componentStore.test.ts26Pass
hooks/useAuth.test.ts13Pass
hooks/useTasks.test.ts19Pass
hooks/useSpaces.test.ts5Pass
hooks/useChat.test.ts38Pass
hooks/useOnboarding.test.ts16Pass
hooks/useNotifications.test.ts8Pass
hooks/use-toast.test.ts12Pass
lib/auth.test.ts12Pass
lib/api.test.ts86Pass
lib/runtime.test.ts21Pass
lib/memory-client.test.ts10Pass
lib/fs-client.test.ts12Pass
lib/component-events.test.ts21Pass
lib/sse.test.ts16Pass
lib/websocket.test.ts25Pass
lib/utils.test.ts49Pass
lib/haptics.test.ts13Pass
lib/tauri.test.ts28Pass
lib/llm-routing.test.ts5Pass
store/llmStore.test.ts5Pass
auth/AuthForm.test.tsx13Pass
chat/ToolCallCard.test.tsx20Pass
chat/ApprovalCard.test.tsx9Pass
chat/ComponentRegistry.test.tsx9Pass
chat/InfoCard.test.tsx6Pass
chat/TaskListRenderer.test.tsx5Pass
chat/ChatBubble.test.tsx30Pass
chat/ConversationList.test.tsx9Pass
chat/PinnedMessages.test.tsx10Pass
chat/ConversationSettingsDialog.test.tsx8Pass
chat/renderers.test.tsx70Pass
layout/Sidebar.test.tsx3Pass
layout/MobileSidebar.test.tsx3Pass
layout/Header.test.tsx7Pass
layout/NotificationBell.test.tsx22Pass
layout/FeatureTour.test.tsx11Pass
layout/BottomNav.test.tsx4Pass
settings/GoogleConnect.test.tsx13Pass
settings/InterfaceConfigCard.test.tsx9Pass
tasks/TaskList.test.tsx9Pass
tasks/TaskDetail.test.tsx31Pass
tasks/CreateTaskDialog.test.tsx12Pass
tasks/ConnectionStatus.test.tsx9Pass
spaces/SpaceList.test.tsx7Pass
spaces/SpaceDetail.test.tsx21Pass
spaces/SpaceCard.test.tsx3Pass
spaces/CreateSpaceDialog.test.tsx5Pass
ui/empty-state.test.tsx5Pass
layout/Breadcrumbs.test.tsx6Pass
pages/Dashboard.test.tsx15Pass
pages/Login.test.tsx3Pass
pages/Settings.test.tsx109Pass
pages/AuthCallback.test.tsx8Pass
pages/Chat.test.tsx109Pass
pages/Tasks.test.tsx19Pass
pages/Spaces.test.tsx15Pass
pages/Onboarding.test.tsx32Pass
search/SearchDialog.test.tsx10Pass
lib/utils.test.ts89Pass
lib/download.test.ts8Pass
pages/AcceptInvite.test.tsx8Pass
pages/ParentConsentPending.test.tsx7Pass
pages/ParentConsentVerify.test.tsx11Pass
auth/AuthForm.test.tsx (age/consent)+8Pass
hooks/usePullToRefresh.test.ts19Pass
auth/SSOIcons.test.tsx7Pass
lib/push-notifications.test.ts7Pass
lib/debug.test.ts6Pass
pages/Calendar.test.tsx10Pass
pages/Inbox.test.tsx10Pass
App.test.tsx36Pass
i18n/completeness.test.ts5Pass
layout/KeyboardShortcuts.test.tsx8Pass
chat/renderers.test.tsx (expanded)135Pass
chat/ComponentRegistry.test.tsx (expanded)42Pass
chat/ConversationList.test.tsx (expanded)52Pass
lib/WebSocketProvider.test.tsx5Pass
pages/settings/NotificationsTab.test.tsx65Pass
pages/settings/ProfileTab.test.tsx72Pass
pages/settings/ParentalControlsTab.test.tsx39Pass
pages/settings/MembersTab.test.tsx50Pass
pages/settings/IntegrationsTab.test.tsx15Pass
pages/Chat.test.tsx (expanded)147Pass
tasks/TaskList.test.tsx (expanded)20Pass
hooks/useSpaces.test.ts (expanded)11Pass
hooks/use-toast.test.ts (expanded)17Pass
settings/InterfaceConfigCard.test.tsx (expanded)15Pass
lib/sse.test.ts (expanded)21Pass
tasks/TaskDetail.test.tsx (expanded)41Pass
pages/Tasks.test.tsx (expanded)36Pass
pages/Chat.test.tsx (expanded)154Pass
New (Feb 19, 2026):
New (Feb 21, 2026 — coverage sprint):
store/networkStore.test.ts6Pass
store/timelineStore.test.ts10Pass
types/timeline.test.ts12Pass
lib/llm-client.test.ts15Pass
hooks/useTimeline.test.ts9Pass
hooks/useNetworkStatus.test.ts6Pass
hooks/useConversationUndoRedo.test.ts8Pass
pages/NotFound.test.tsx6Pass
pages/Notifications.test.tsx14Pass
pages/settings/LocalAITab.test.tsx14Pass
pages/settings/SkillsTab.test.tsx14Pass
pages/settings/SchedulesTab.test.tsx14Pass
pages/settings/PermissionsTab.test.tsx13Pass
timeline/ConflictDialog.test.tsx6Pass
timeline/CommitDetail.test.tsx9Pass
timeline/BranchSelector.test.tsx7Pass
spaces/MorphSyncBadge.test.tsx5Pass
layout/OfflineBadge.test.tsx6Pass
New (Feb 21, 2026 — V1.3 Sprint 1 editable components):
chat/EditableCardRenderer.test.tsx18Pass
chat/EditableListRenderer.test.tsx16Pass
chat/EditableTableRenderer.test.tsx14Pass
chat/EditPermissions.test.tsx7Pass
New (Feb 21, 2026 — V1.3 Sprint 2 camera & image upload):
chat/ImageRenderer (in renderers.test.tsx)8Pass

Backend — New Tests (V1.3 Sprint 2)

FileTestsStatus
tests/test_chat_image.py25Pass

Frontend E2E Tests (Playwright)

cd frontend && npm run test:e2e

Result: 60 Playwright tests in 8 files + 3 E2E scenario YAMLs (V1.3 multimodal)

Test SuiteTestsStatus
auth.spec.ts8Pass - signup, login, logout, onboarding flow
tasks.spec.ts7Pass - create, detail, filter, dashboard stats
chat.spec.ts7Pass - empty state, send, streaming, error (mocked SSE)
mobile.spec.ts6Pass - responsive layout, bottom nav, mobile drawer
conversations.spec.ts10Pass - list, pin, select, options menu, empty state
search.spec.ts8Pass - Cmd+K, input, Escape, results, grouping
settings.spec.ts8Pass - tabs, profile, members, notifications, privacy
spaces.spec.ts6Pass - list, create dialog, empty state

E2E Scenario YAMLs (V1.3 multimodal):

ScenarioFileStatus
Inline edit carde2e/scenarios/v1.3-multimodal/inline-edit-card.scenario.ymlReady
Drag list items reordere2e/scenarios/v1.3-multimodal/drag-list-items.scenario.ymlReady
Drag kanban cardse2e/scenarios/v1.3-multimodal/drag-kanban-cards.scenario.ymlReady

Tauri Rust Tests (cargo test)

cd frontend/src-tauri && cargo test

Result: 165 passed (desktop) + 9 passed (mobile-ml feature)

ModuleTestsStatus
embeddings6Pass
vector_store15Pass
git_store27Pass
vault5Pass
file_store8Pass
action_queue7Pass
llm6Pass
model_manager5Pass
extensions15Pass
vector_router4Pass
tts2Pass
whisper3Pass
screenshot_commands4Pass
face_encoder8Pass
voice_encoder6Pass
biometric_commands7Pass
liveness11Pass
error_codes2Pass
tokenizer (mobile-ml)9Pass

Frontend Build

cd frontend && npm run build

Result: Build clean — 435 KB JS, 67 KB CSS (code-split via Vite, reduced from 981 KB monolith)


System Status Summary

ComponentStatusPortNotes
Backend APIRunning8000Auth, Tasks, Spaces, Groups, WebSocket
Frontend (Vite)Running5173React 19 + TypeScript + Tailwind
PostgreSQLRunning54322Migrations applied
RedisRunning6379Event bus connected
Interface SystemWorking-15 integrations (echo, webhook, llm, tasks, spaces, frontend, onboarding, memory, cron, notifications, calendar, gmail, files, skills, slack)
Event BusWorking-Redis-backed

Known Issues

None — PostgREST has been removed and replaced with direct asyncpg connections.


Architecture Highlights

  • Event-Driven: All actions publish events (action.started, action.completed, action.failed)
  • MCP-Style Integration System: Self-describing integrations with action definitions, parameter validation, approval mechanism
  • 100% Async/Await: Non-blocking I/O throughout the stack
  • Type Safety: Pydantic models + Python 3.12 typing

Test Date: February 22, 2026 Environment: Docker (backend) + Vite dev server (frontend) Total Tests: 5,388 (2,014 backend + 165 Rust + 3,016 frontend unit + 63 E2E + 5 SDK unit + 95 skipped + 30 Phase 6) Pass Rate: 99.9% (1 pre-existing CSP test skip in backend)