Skip to content

Commit 346ebb2

Browse files
Merge pull request #427 from igorls/fix/ci-green
fix(ci): resolve 4 pre-existing CI failures blocking all PRs
2 parents ef1a81c + 5242658 commit 346ebb2

5 files changed

Lines changed: 90 additions & 58 deletions

File tree

.gitleaks.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@
1515
paths = [
1616
'''dream-server/installers/phases/06-directories\.sh''',
1717
'''dream-server/installers/macos/lib/env-generator\.sh''',
18+
'''dream-server/installers/windows/lib/env-generator\.ps1''',
1819
]

dream-server/config/ports.json

Lines changed: 75 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,114 +3,133 @@
33
"description": "Canonical external port contract for Dream Server services.",
44
"ports": [
55
{
6-
"env": "OLLAMA_PORT",
7-
"default": 8080,
6+
"env_var": "OLLAMA_PORT",
7+
"external_default": 8080,
88
"service_id": "llama-server",
9-
"container_port": 8080
9+
"internal_port": 8080,
10+
"manifest_service": "llama-server",
11+
"include_in_example": false
1012
},
1113
{
12-
"env": "WEBUI_PORT",
13-
"default": 3000,
14+
"env_var": "WEBUI_PORT",
15+
"external_default": 3000,
1416
"service_id": "open-webui",
15-
"container_port": 8080
17+
"internal_port": 8080,
18+
"manifest_service": "open-webui",
19+
"include_in_example": false
1620
},
1721
{
18-
"env": "SEARXNG_PORT",
19-
"default": 8888,
22+
"env_var": "SEARXNG_PORT",
23+
"external_default": 8888,
2024
"service_id": "searxng",
21-
"container_port": 8080
25+
"internal_port": 8080,
26+
"manifest_service": "searxng"
2227
},
2328
{
24-
"env": "PERPLEXICA_PORT",
25-
"default": 3004,
29+
"env_var": "PERPLEXICA_PORT",
30+
"external_default": 3004,
2631
"service_id": "perplexica",
27-
"container_port": 3000
32+
"internal_port": 3000,
33+
"manifest_service": "perplexica"
2834
},
2935
{
30-
"env": "WHISPER_PORT",
31-
"default": 9000,
36+
"env_var": "WHISPER_PORT",
37+
"external_default": 9000,
3238
"service_id": "whisper",
33-
"container_port": 8000
39+
"internal_port": 8000,
40+
"manifest_service": "whisper"
3441
},
3542
{
36-
"env": "TTS_PORT",
37-
"default": 8880,
43+
"env_var": "TTS_PORT",
44+
"external_default": 8880,
3845
"service_id": "tts",
39-
"container_port": 8880
46+
"internal_port": 8880,
47+
"manifest_service": "tts"
4048
},
4149
{
42-
"env": "N8N_PORT",
43-
"default": 5678,
50+
"env_var": "N8N_PORT",
51+
"external_default": 5678,
4452
"service_id": "n8n",
45-
"container_port": 5678
53+
"internal_port": 5678,
54+
"manifest_service": "n8n"
4655
},
4756
{
48-
"env": "QDRANT_PORT",
49-
"default": 6333,
57+
"env_var": "QDRANT_PORT",
58+
"external_default": 6333,
5059
"service_id": "qdrant",
51-
"container_port": 6333
60+
"internal_port": 6333,
61+
"manifest_service": "qdrant"
5262
},
5363
{
54-
"env": "QDRANT_GRPC_PORT",
55-
"default": 6334,
64+
"env_var": "QDRANT_GRPC_PORT",
65+
"external_default": 6334,
5666
"service_id": "qdrant",
57-
"container_port": 6334,
58-
"skip_manifest": true
67+
"internal_port": 6334,
68+
"include_in_example": false
5969
},
6070
{
61-
"env": "EMBEDDINGS_PORT",
62-
"default": 8090,
71+
"env_var": "EMBEDDINGS_PORT",
72+
"external_default": 8090,
6373
"service_id": "embeddings",
64-
"container_port": 80
74+
"internal_port": 80,
75+
"manifest_service": "embeddings"
6576
},
6677
{
67-
"env": "LITELLM_PORT",
68-
"default": 4000,
78+
"env_var": "LITELLM_PORT",
79+
"external_default": 4000,
6980
"service_id": "litellm",
70-
"container_port": 4000
81+
"internal_port": 4000,
82+
"manifest_service": "litellm"
7183
},
7284
{
73-
"env": "OPENCLAW_PORT",
74-
"default": 7860,
85+
"env_var": "OPENCLAW_PORT",
86+
"external_default": 7860,
7587
"service_id": "openclaw",
76-
"container_port": 18789
88+
"internal_port": 18789,
89+
"manifest_service": "openclaw"
7790
},
7891
{
79-
"env": "SHIELD_PORT",
80-
"default": 8085,
92+
"env_var": "SHIELD_PORT",
93+
"external_default": 8085,
8194
"service_id": "privacy-shield",
82-
"container_port": 8085
95+
"internal_port": 8085,
96+
"manifest_service": "privacy-shield"
8397
},
8498
{
85-
"env": "DASHBOARD_API_PORT",
86-
"default": 3002,
99+
"env_var": "DASHBOARD_API_PORT",
100+
"external_default": 3002,
87101
"service_id": "dashboard-api",
88-
"container_port": 3002
102+
"internal_port": 3002,
103+
"manifest_service": "dashboard-api"
89104
},
90105
{
91-
"env": "DASHBOARD_PORT",
92-
"default": 3001,
106+
"env_var": "DASHBOARD_PORT",
107+
"external_default": 3001,
93108
"service_id": "dashboard",
94-
"container_port": 3001
109+
"internal_port": 3001,
110+
"manifest_service": "dashboard"
95111
},
96112
{
97-
"env": "COMFYUI_PORT",
98-
"default": 8188,
113+
"env_var": "COMFYUI_PORT",
114+
"external_default": 8188,
99115
"service_id": "comfyui",
100-
"container_port": 8188
116+
"internal_port": 8188,
117+
"manifest_service": "comfyui"
101118
},
102119
{
103-
"env": "TOKEN_SPY_PORT",
104-
"default": 3005,
120+
"env_var": "TOKEN_SPY_PORT",
121+
"external_default": 3005,
105122
"service_id": "token-spy",
106-
"container_port": 8080
123+
"internal_port": 8080,
124+
"manifest_service": "token-spy"
107125
},
108126
{
109-
"env": "OPENCODE_PORT",
110-
"default": 3003,
127+
"env_var": "OPENCODE_PORT",
128+
"external_default": 3003,
111129
"service_id": "opencode",
112-
"container_port": 3003,
113-
"require_compose": false
130+
"internal_port": 3003,
131+
"compose_managed": false,
132+
"manifest_service": "opencode"
114133
}
115134
]
116135
}

dream-server/extensions/services/dashboard-api/tests/test_routers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,11 @@ def test_agents_metrics_authenticated(test_client):
338338
"""GET /api/agents/metrics with auth → 200, returns agent metrics with seeded data."""
339339
from agent_monitor import agent_metrics, throughput
340340

341+
# Reset singletons to avoid cross-test contamination
342+
throughput.data_points = []
343+
agent_metrics.session_count = 0
344+
agent_metrics.tokens_per_second = 0.0
345+
341346
# Seed non-default values to test actual aggregation
342347
agent_metrics.session_count = 5
343348
agent_metrics.tokens_per_second = 123.45
@@ -410,6 +415,10 @@ def test_agents_metrics_html_xss_escaping(test_client):
410415
"""GET /api/agents/metrics.html escapes HTML special chars to prevent XSS."""
411416
from agent_monitor import agent_metrics, throughput
412417

418+
# Reset singletons to avoid cross-test contamination
419+
throughput.data_points = []
420+
agent_metrics.session_count = 0
421+
413422
# Inject XSS payload into agent metrics
414423
agent_metrics.session_count = 999
415424
throughput.add_sample(42.0)
@@ -441,6 +450,9 @@ def test_agents_throughput_authenticated(test_client):
441450
"""GET /api/agents/throughput with auth → 200, returns throughput stats with real data."""
442451
from agent_monitor import throughput
443452

453+
# Reset singleton to avoid cross-test contamination
454+
throughput.data_points = []
455+
444456
# Seed throughput data to test actual behavior
445457
throughput.add_sample(42.0)
446458
throughput.add_sample(55.0)

dream-server/extensions/services/llama-server/manifest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ service:
1212
default_host: llama-server
1313
port: 8080
1414
external_port_env: OLLAMA_PORT
15-
external_port_default: 11434
15+
external_port_default: 8080
1616
health: /health
1717
ui_path: /
1818
health_timeout: 15

dream-server/scripts/session-cleanup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ for f in "$SESSIONS_DIR"/*.jsonl; do
107107
REMOVED_INACTIVE=$((REMOVED_INACTIVE + 1))
108108
else
109109
# Portable stat: Linux uses -c%s, macOS uses -f%z
110-
local stat_exit=0
110+
stat_exit=0
111111
if [ "$(uname -s)" = "Darwin" ]; then
112112
SIZE_BYTES=$(stat -f%z "$f" 2>&1) || stat_exit=$?
113113
else

0 commit comments

Comments
 (0)