Competitive Intelligence
logs/2026-06-26-ci-stabilization.md
CI Stabilization Log - 2026-06-26
Status
Phase 0 is partially implemented and verified. The weekly renderer failure is fixed, the VPS ledger exists again, the daily baseline-filter bug is fixed, and the CI workspace sync now preserves runtime-only artifacts.
Live Runtime Truth
Verified on the Hostinger VPS chowmes on 2026-06-26.
| Surface | Confirmed state |
|---|---|
| Host | chowmes |
| Public ports | 22/tcp, 80/tcp, 443/tcp allowed by UFW |
| Local-only ports | Hermes dashboard 127.0.0.1:9119, Temporal 127.0.0.1:7233, Temporal UI 127.0.0.1:8088, Scout 127.0.0.1:8421, AC2 lab backend 127.0.0.1:8787 |
| Containers | hermes, caddy, scout, temporal, temporal-ui, temporal-db, ac2-lab-backend |
| Hermes model provider | openrouter |
| Hermes default model | deepseek/deepseek-v4-pro |
| Hermes context length | 131072 |
| Hermes max turns | 6 |
| Hermes web backend | parallel |
| Default gateway | Athena/default running, PID 144 |
| Other active gateway | Vulcan profile running, PID 167 |
| Other available profiles | arjuna, kubera, prometheus, strategic exist as profile directories but no gateway was reported running for them |
Fixes Implemented
- Added weekly HTML renderer support in
skills/competitive-research/scripts/ci_core.py. - Added regression coverage in
skills/competitive-research/tests/test_ci_core_weekly.py. - Fixed daily synthesis material filtering so baseline captures with
raw_json.baseline == trueare not treated as action-worthy competitor movement. - Added
scripts/sync-competitive-intelligence-to-hermesfor CI-only safe sync. - Patched
scripts/sync-obsidian-to-hermesto preserve CI runtime-only artifacts: -Projects/Competitive Intelligence/artifacts/competitive-research/ci.sqlite-Projects/Competitive Intelligence/artifacts/competitive-research/raw/
Verification Evidence
Local regression:
python3 -m pytest .../skills/competitive-research/tests/test_ci_core_weekly.py -v
9 passed in 0.09s
VPS runtime artifact check:
ci_sqlite_bytes=483328
raw_files=1
VPS daily resume after baseline filter:
Sources loaded: 43
Synthesis packet: 0 signals, 20 ledger sources
No material daily signals; using deterministic quiet-day synthesis.
Markdown saved: .../briefs/2026-06-26.md
HTML saved: .../reports/2026-06-26.html
Quality score: 1.00
VPS weekly production wrapper:
Weekly competitive readout - 2026-06-20 to 2026-06-26
Signals in window: 27
Markdown: .../briefs/2026-06-26-weekly.md
HTML: .../reports/2026-06-26-weekly.html
PDF: .../reports/2026-06-26-weekly.pdf
weekly_pdf_exists=yes
weekly_pdf_bytes=2832
pdf_header=%PDF-1.4
VPS static dashboard:
Dashboard saved: /opt/data/knowledge/obsidian/MyOS/Projects/Competitive Intelligence/artifacts/competitive-research/dashboard/index.html
dashboard_bytes=16045
CI Command Center=True
Today=True
Weekly=True
Sources=True
Signals=True
Actions=True
Archive=True
Chowmes health check after skill sync:
repair=applied
hermes_can_read_runtime_files=yes
telegram_owner_approval=present
root_owned_runtime_files=no
gateway_status=running
web_backend=parallel
telegram_send_test=sent
root_owned_runtime_files_after_checks=no
Important warning: the health check also reported an OpenRouter payment/credit error for auxiliary model processing. Local deterministic CI runs still pass, but model-backed synthesis quality may degrade or fail until OpenRouter billing/credits are healthy.
Open Stabilization Work
- Decide whether Arjuna, Kubera, and Prometheus should remain on-demand or run active gateways.
- Serve the static CI dashboard behind a private tunnel.
- Replace or reclassify blocked sources so quiet-day confidence is not overstated.
- Add sync preflight output that explicitly prints preserved runtime files before and after extraction.