PASS root .htaccess
PASS root index.html
PASS root index.php
PASS root manifest.webmanifest
PASS root sw.js
PASS root precache-manifest.json
PASS root server
PASS root storage
PASS root assets
PASS root icons
PASS no app wrapper
PASS no public documentation directory
PASS no symlinks — []
PASS no runtime data shipped — []
PASS JSON parsing — 4 documents
PASS manifest file_count — 81
PASS manifest inventory coverage — 81 files
PASS manifest .htaccess
PASS manifest README.md
PASS manifest THIRD_PARTY_NOTICES_22072026125600.txt
PASS manifest VERSION
PASS manifest assets/index-12db1e757e12.css
PASS manifest assets/index-5aa4ab81f41a.js
PASS manifest assets/native-android.js
PASS manifest assets/offline-runtime.js
PASS manifest assets/platform-enhancements.js
PASS manifest assets/react-de59b0d4504a.js
PASS manifest assets/react-dom-c7a65157caeb.js
PASS manifest icons/apple-touch-icon-180.png
PASS manifest icons/favicon-48.png
PASS manifest icons/icon-192.png
PASS manifest icons/icon-512.png
PASS manifest icons/maskable-512.png
PASS manifest index.html
PASS manifest index.php
PASS manifest manifest.webmanifest
PASS manifest offline.html
PASS manifest precache-manifest.json
PASS manifest sbom.cdx.json
PASS manifest server/.htaccess
PASS manifest server/bootstrap.php
PASS manifest server/config.php
PASS manifest server/index.php
PASS manifest server/lib/AgenticDefinition.php
PASS manifest server/lib/Api.php
PASS manifest server/lib/Auth.php
PASS manifest server/lib/ContextBudget.php
PASS manifest server/lib/Cost.php
PASS manifest server/lib/Crypto.php
PASS manifest server/lib/DataManagement.php
PASS manifest server/lib/Database.php
PASS manifest server/lib/Environment.php
PASS manifest server/lib/Errors.php
PASS manifest server/lib/Http.php
PASS manifest server/lib/Json.php
PASS manifest server/lib/Logger.php
PASS manifest server/lib/MessageSequence.php
PASS manifest server/lib/Migrations.php
PASS manifest server/lib/Projects.php
PASS manifest server/lib/Prompts.php
PASS manifest server/lib/RateLimiter.php
PASS manifest server/lib/Sse.php
PASS manifest server/lib/Sync.php
PASS manifest server/lib/TextFile.php
PASS manifest server/lib/Together.php
PASS manifest server/lib/ToolExecutor.php
PASS manifest server/lib/ToolRegistry.php
PASS manifest server/lib/Validator.php
PASS manifest server/lib/WorkflowEngine.php
PASS manifest server/lib/ZipGuard.php
PASS manifest server/migrations/001_initial.sql
PASS manifest server/migrations/002_indexes.sql
PASS manifest server/migrations/003_seed.sql
PASS manifest server/migrations/004_message_sequence.sql
PASS manifest server/migrations/005_workflow_recovery_and_cost.sql
PASS manifest server/migrations/006_v2_0_1_settings.sql
PASS manifest server/migrations/007_execution_integrity.sql
PASS manifest server/migrations/008_worker_leases.sql
PASS manifest server/migrations/009_offline_sync.sql
PASS manifest server/migrations/010_data_controls.sql
PASS manifest server/migrations/011_agentic_automation.sql
PASS manifest server/migrations/012_project_templates_and_branches.sql
PASS manifest server/migrations/013_release_hardening.sql
PASS manifest server/routes/auth.php
PASS manifest server/routes/automation.php
PASS manifest server/routes/chat.php
PASS manifest server/routes/conversations.php
PASS manifest server/routes/cost.php
PASS manifest server/routes/data.php
PASS manifest server/routes/projects.php
PASS manifest server/routes/prompts.php
PASS manifest server/routes/settings.php
PASS manifest server/routes/sync.php
PASS manifest server/routes/templates.php
PASS manifest server/routes/tts.php
PASS manifest server/routes/workflow.php
PASS manifest storage/.htaccess
PASS manifest sw.js
PASS SBOM inventory coverage — 80 files
PASS SBOM .htaccess
PASS SBOM README.md
PASS SBOM THIRD_PARTY_NOTICES_22072026125600.txt
PASS SBOM VERSION
PASS SBOM assets/index-12db1e757e12.css
PASS SBOM assets/index-5aa4ab81f41a.js
PASS SBOM assets/native-android.js
PASS SBOM assets/offline-runtime.js
PASS SBOM assets/platform-enhancements.js
PASS SBOM assets/react-de59b0d4504a.js
PASS SBOM assets/react-dom-c7a65157caeb.js
PASS SBOM icons/apple-touch-icon-180.png
PASS SBOM icons/favicon-48.png
PASS SBOM icons/icon-192.png
PASS SBOM icons/icon-512.png
PASS SBOM icons/maskable-512.png
PASS SBOM index.html
PASS SBOM index.php
PASS SBOM manifest.webmanifest
PASS SBOM offline.html
PASS SBOM precache-manifest.json
PASS SBOM server/.htaccess
PASS SBOM server/bootstrap.php
PASS SBOM server/config.php
PASS SBOM server/index.php
PASS SBOM server/lib/AgenticDefinition.php
PASS SBOM server/lib/Api.php
PASS SBOM server/lib/Auth.php
PASS SBOM server/lib/ContextBudget.php
PASS SBOM server/lib/Cost.php
PASS SBOM server/lib/Crypto.php
PASS SBOM server/lib/DataManagement.php
PASS SBOM server/lib/Database.php
PASS SBOM server/lib/Environment.php
PASS SBOM server/lib/Errors.php
PASS SBOM server/lib/Http.php
PASS SBOM server/lib/Json.php
PASS SBOM server/lib/Logger.php
PASS SBOM server/lib/MessageSequence.php
PASS SBOM server/lib/Migrations.php
PASS SBOM server/lib/Projects.php
PASS SBOM server/lib/Prompts.php
PASS SBOM server/lib/RateLimiter.php
PASS SBOM server/lib/Sse.php
PASS SBOM server/lib/Sync.php
PASS SBOM server/lib/TextFile.php
PASS SBOM server/lib/Together.php
PASS SBOM server/lib/ToolExecutor.php
PASS SBOM server/lib/ToolRegistry.php
PASS SBOM server/lib/Validator.php
PASS SBOM server/lib/WorkflowEngine.php
PASS SBOM server/lib/ZipGuard.php
PASS SBOM server/migrations/001_initial.sql
PASS SBOM server/migrations/002_indexes.sql
PASS SBOM server/migrations/003_seed.sql
PASS SBOM server/migrations/004_message_sequence.sql
PASS SBOM server/migrations/005_workflow_recovery_and_cost.sql
PASS SBOM server/migrations/006_v2_0_1_settings.sql
PASS SBOM server/migrations/007_execution_integrity.sql
PASS SBOM server/migrations/008_worker_leases.sql
PASS SBOM server/migrations/009_offline_sync.sql
PASS SBOM server/migrations/010_data_controls.sql
PASS SBOM server/migrations/011_agentic_automation.sql
PASS SBOM server/migrations/012_project_templates_and_branches.sql
PASS SBOM server/migrations/013_release_hardening.sql
PASS SBOM server/routes/auth.php
PASS SBOM server/routes/automation.php
PASS SBOM server/routes/chat.php
PASS SBOM server/routes/conversations.php
PASS SBOM server/routes/cost.php
PASS SBOM server/routes/data.php
PASS SBOM server/routes/projects.php
PASS SBOM server/routes/prompts.php
PASS SBOM server/routes/settings.php
PASS SBOM server/routes/sync.php
PASS SBOM server/routes/templates.php
PASS SBOM server/routes/tts.php
PASS SBOM server/routes/workflow.php
PASS SBOM storage/.htaccess
PASS SBOM sw.js
PASS HTML reference icons/favicon-48.png
PASS HTML reference icons/apple-touch-icon-180.png
PASS HTML reference assets/offline-runtime.js
PASS HTML reference assets/native-android.js
PASS HTML reference assets/platform-enhancements.js
PASS HTML reference assets/react-de59b0d4504a.js
PASS HTML reference assets/react-dom-c7a65157caeb.js
PASS HTML reference assets/index-5aa4ab81f41a.js
PASS HTML reference assets/index-12db1e757e12.css
PASS HTML reference manifest.webmanifest
PASS no inline scripts
PASS no inline event handlers — []
PASS manifest start_url relative
PASS manifest scope relative
PASS manifest standalone
PASS manifest light colours
PASS icon icons/icon-192.png — (192, 192)
PASS icon icons/icon-512.png — (512, 512)
PASS icon icons/maskable-512.png — (512, 512)
PASS icon icons/apple-touch-icon-180.png — (180, 180)
PASS icon icons/favicon-48.png — (48, 48)
PASS precache version
PASS precache unique — 15
PASS precache safety ./assets/react-de59b0d4504a.js
PASS precache exists ./assets/react-de59b0d4504a.js
PASS precache safety ./assets/react-dom-c7a65157caeb.js
PASS precache exists ./assets/react-dom-c7a65157caeb.js
PASS precache safety ./assets/index-5aa4ab81f41a.js
PASS precache exists ./assets/index-5aa4ab81f41a.js
PASS precache safety ./assets/index-12db1e757e12.css
PASS precache exists ./assets/index-12db1e757e12.css
PASS precache safety ./assets/native-android.js
PASS precache exists ./assets/native-android.js
PASS precache safety ./assets/offline-runtime.js
PASS precache exists ./assets/offline-runtime.js
PASS precache safety ./assets/platform-enhancements.js
PASS precache exists ./assets/platform-enhancements.js
PASS precache safety ./icons/icon-192.png
PASS precache exists ./icons/icon-192.png
PASS precache safety ./icons/icon-512.png
PASS precache exists ./icons/icon-512.png
PASS precache safety ./icons/maskable-512.png
PASS precache exists ./icons/maskable-512.png
PASS precache safety ./icons/apple-touch-icon-180.png
PASS precache exists ./icons/apple-touch-icon-180.png
PASS precache safety ./icons/favicon-48.png
PASS precache exists ./icons/favicon-48.png
PASS precache safety ./index.html
PASS precache exists ./index.html
PASS precache safety ./manifest.webmanifest
PASS precache exists ./manifest.webmanifest
PASS precache safety ./offline.html
PASS precache exists ./offline.html
PASS install block does not skip waiting
PASS API excluded before cache handling
PASS service-worker fallback returns Response
PASS controlled update message supported
PASS .htaccess contains RewriteRule ^(?:storage|server
PASS .htaccess contains Content-Security-Policy
PASS .htaccess contains Strict-Transport-Security
PASS .htaccess contains Cache-Control "public, max-age=31536000, immutable"
PASS .htaccess contains offline-runtime\.js
PASS offline hardening AES-GCM
PASS offline hardening MAX_OFFLINE_CREDENTIAL_AGE_MS
PASS offline hardening derivePin
PASS offline hardening encryptLocalRecord
PASS offline hardening decryptLocalRecord
PASS mock provider test-only
PASS README excludes stale text ../documentation/
PASS README excludes stale text under `app/`
PASS README excludes stale text contents of `app/`
PASS README excludes stale text Headless Chromium provides deterministic
PASS README states flat layout
PASS frontend API root coverage — []
PASS no secret pattern (?i)sk-[A-Za-z0-9_-]{20,}
PASS no secret pattern (?i)api[_-]?key\s*[:=]\s*["\'][A-Za-z0-9_-]{20,}["\']
PASS no secret pattern -----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----
PASS no dangerous primitive eval(
PASS no dangerous primitive shell_exec(
PASS no dangerous primitive passthru(
PASS no dangerous primitive proc_open(
PASS no dangerous primitive popen(
PASS migration count — 13
PASS fresh SQLite integrity
PASS fresh foreign keys
PASS table users
PASS table settings
PASS table conversations
PASS table messages
PASS table projects
PASS table workflows
PASS table automation_definitions
PASS table automation_templates
PASS table sync_mutations
PASS table workflow_workers
PASS table tool_approvals
PASS fresh app version
PASS fresh offline age
PASS latest migration repeat
PASS 12-to-13 upgrade integrity
PASS 12-to-13 foreign keys
PASS 12-to-13 app version
SUMMARY 281 structural checks passed