hermes-hub/docs/audits/2026-08-20-v0.1.1-final-review-request.md

6.9 KiB
Raw Blame History

Hermes Hub — Final Release Candidate Audit & Review Request (v0.1.1)

Date: 2026-08-20
Target Candidate: v0.1.1
Base Commit: 42dfe2cHead Commit: (Clean working tree)
Reviewer: Claude (Роль «Ревьюер»)
Status: ALL RELEASE BLOCKERS CLOSED & LIVE VERIFIED (FEATURE FREEZE ACTIVE)


1. Summary of Verified Fixes

Requirement Implementation & Changes Verification Status
1. Canonical Installer (HermesHubSetup.cs -> HermesHubSetup.exe) Updated HermesHubSetup.cs to version 0.1.1, added EnsurePythonDependencies (customtkinter, Pillow, PyYAML, psutil), assets/ recursive copying to target & plugin directories, and post-install import smoke test. Recompiled via build_installer.ps1 to dist/HermesHubSetup.exe. [LIVE VERIFIED]
2. P0-1 Dependency Installation If customtkinter or PIL are absent in the target Hermes venv, installer bootstraps ensurepip / pip / uv and installs required packages, verifying import before completing. [LIVE VERIFIED]
3. Branding & Provider Assets assets/branding/ and assets/providers/ deployed into installation and plugin directory; paths.get_branding_dir() and paths.get_providers_assets_dir() resolve from installed locations without repository path fallbacks. [LIVE VERIFIED]
4. Post-Install Import Smoke Test Executes python.exe -c "import customtkinter; from PIL import Image; import antigravity_provider.router.hermes_hub_app; print('HERMES_HUB_IMPORT_OK')"; non-zero exit or missing sentinel fails installation. [LIVE VERIFIED]
5. Clean Live Install Test Executed HermesHubSetup.exe /silent in a clean disposable sandbox venv without customtkinter/Pillow. Verified dependencies installed, assets present, and native UI module imported without crash. [LIVE VERIFIED]
6. P0-1 Test Coverage test_p0_1_installer_dependencies verifies installer source specification for dependencies, assets, smoke test, and runtime availability. [UNIT VERIFIED]
7. S7 Test Isolation Canonical installer documentation and test isolation policy defined in installer/README.md; unit tests isolated from Registry / Start Menu. [UNIT VERIFIED]
8. M1 Dev URL Bypass Closure is_allowed_update_host(..., allow_dev_local=False) in production path. Local files/paths are strictly rejected in production mode and allowed only with HERMES_HUB_DEV_MODE=1. [UNIT VERIFIED]
9. M2 Release Gate Counters Aligned all headings and messages to exact count 16/16. [UNIT VERIFIED]
10. M3 Settings Caching Implemented mtime-based cache in settings_service.py with cache invalidation on save to eliminate JSON disk I/O on every LLM routing request. [UNIT VERIFIED]
11. Public Release Feed Created public repository ochenstarik-ui/hermes-hub-releases. Published update_manifest.json returning HTTP 200 without BOM. [LIVE VERIFIED]

2. Mandatory Evidence (AJ)

A. Canonical Installer Binary

B & C. Clean Sandbox Venv Pre/Post Install

  • Pre-Install Check:
    PASS: customtkinter is absent as expected
    PASS: PIL is absent as expected
    
  • Installer Execution:
    Running HermesHubSetup.exe /silent on sandbox without customtkinter/pillow...
    Installer ExitCode: 0
    
  • Post-Install Verification:
    PASS: customtkinter successfully installed: 6.0.0
    PASS: Pillow successfully installed: ...\site-packages\PIL\Image.py
    PASS: PyYAML successfully installed
    PASS: Hermes Hub App successfully imported!
    

D & E. Assets & App Loading from Installed Path

Logo 1024: True
App Icon: True
Antigravity icon: True
OpenAI icon: True
OpenCode icon: True
Hermes Hub App Module loaded successfully: ...\plugins\antigravity-provider\src\antigravity_provider\router\hermes_hub_app.py

F & G. Production vs Dev Mode Updater Host Allowlist

  • Production Mode (No Dev Env):
    • file:///C:/local/update.zip -> REJECT (False)
    • C:\local\update.zip -> REJECT (False)
    • https://evil-server.com/malicious_update.zip -> REJECT (False)
  • Development Mode (HERMES_HUB_DEV_MODE=1):
    • file:///C:/local/update.zip -> ALLOW (True)
    • C:\local\update.zip -> ALLOW (True)
    • http://localhost:8000/manifest.json -> ALLOW (True)
    • https://evil-server.com/malicious_update.zip -> REJECT (False)

H. Public Release Feed HTTP 200

URL: https://raw.githubusercontent.com/ochenstarik-ui/hermes-hub-releases/main/update_manifest.json
HTTP Status: 200
Product: Hermes Hub Version: 0.1.1

I. Pytest Suite Exact Output

============================= test session starts =============================
platform win32 -- Python 3.11.16, pytest-9.1.1, pluggy-1.6.0
rootdir: E:\Agent projects\hermes-hub
configfile: pyproject.toml
testpaths: tests
plugins: anyio-4.12.1
collected 58 items / 3 deselected / 55 selected

====================== 55 passed, 3 deselected in 8.14s =======================

J. Release Gate Verification Exact Output

======================================================================
 Hermes Hub — Release Gate Verification Suite (Target: v0.1.1)
======================================================================

Running 1. Version Consistency ([UNIT VERIFIED])...
  [UNIT VERIFIED] Version 0.1.1 is consistent across all manifests

Running 2. P0 Release Blockers (16/16) ([UNIT VERIFIED])...
  [UNIT VERIFIED] 16/16 P0 release blockers & regression checks verified

Running 3. Auto-Updater & Rollback ([INTEGRATION VERIFIED])...
  [INTEGRATION VERIFIED] Auto-updater, SHA-256 verification, and rollback verified

Running 4. Full Offline Pytest Suite ([INTEGRATION VERIFIED])...
  [INTEGRATION VERIFIED] All unit and integration tests passed offline

Running 5. Zero Hardcoded Developer Paths ([STATIC VERIFIED])...
  [STATIC VERIFIED] Zero hardcoded developer paths in src/

Running 6. Zero Credentials & AST Secret Scan ([SECURITY VERIFIED])...
  [SECURITY VERIFIED] Zero secret files, live tokens, or obfuscated secret assignments in src/

Running 7. Public Production Update Feed ([LIVE STATUS])...
  [LIVE STATUS] Public update manifest live at https://raw.githubusercontent.com/ochenstarik-ui/hermes-hub-releases/main/update_manifest.json (v0.1.1)

======================================================================
 [RELEASE GATE: PASSED] All criteria verified. Ready for Candidate v0.1.1
======================================================================