Skip to content

Commit 30ff8d5

Browse files
committed
Merge branch 'develop'
2 parents 86616c3 + ca3492d commit 30ff8d5

32 files changed

Lines changed: 1808 additions & 125 deletions

CHANGELOG.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,38 @@
33
Generated by `npm run set:version`.
44
The local changelog is rebuilt from the available `v*` release tags and the current `HEAD` range.
55
The script does not create tags locally.
6-
## v0.36.4 - 2026-04-11
6+
## v0.38.0 - 2026-04-15
77

88
- Release source: local versioning run
9+
- Base ref: `v0.36.4`
10+
- Range: `v0.36.4..HEAD`
11+
- Included commits: 5
12+
13+
### Features (2)
14+
15+
- [atlas-dashboard] rename AI layer and add n8n card (`619c080`)
16+
- [atlas-dashboard] add Plane Penpot and Nextcloud AIO core cards (`1f7e6be`)
17+
18+
### Fix (1)
19+
20+
- [atlas-dashboard] always show AI service cards (`31ad140`)
21+
22+
### CI / Maintenance (2)
23+
24+
- [ollama] expand configured runtime model catalog (`f4e184f`)
25+
- [release] v0.37.2 (`132e3d2`)
26+
27+
## v0.36.4 - 2026-04-11
28+
29+
- Release tag: `v0.36.4`
930
- Base ref: `v0.36.3`
10-
- Range: `v0.36.3..HEAD`
11-
- Included commits: 1
31+
- Range: `v0.36.3..v0.36.4`
32+
- Included commits: 2
1233

13-
### CI / Maintenance (1)
34+
### CI / Maintenance (2)
1435

1536
- [deps] update lab runtimes and dependencies (`cd7008e`)
37+
- [release] v0.36.4 (`a12d26d`)
1638

1739
## v0.36.3 - 2026-03-31
1840

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Atlas Lab 🚀
22

3-
![Version](https://img.shields.io/badge/version-0.36.4-blue.svg)
3+
![Version](https://img.shields.io/badge/version-0.38.0-blue.svg)
44
![License](https://img.shields.io/badge/license-MIT-22c55e.svg)
55
![Docker Compose](https://img.shields.io/badge/Docker%20Compose-v2-2496ED?logo=docker&logoColor=white)
66
![Gateway](https://img.shields.io/badge/Gateway-Caddy-1F2937?logo=caddy&logoColor=white)

apps/atlas-dashboard/src/App.tsx

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -248,19 +248,17 @@ export default function App() {
248248
title={t('sections.aiTitle')}
249249
/>
250250
<LayerStateCard layer={dashboard.aiLayer} />
251-
{dashboard.aiLayer.enabled ? (
252-
<Row gutter={[24, 24]}>
253-
{dashboard.aiServices.map((service) => (
254-
<Col xs={24} xl={12} key={service.id}>
255-
<OperationalCard
256-
item={service}
257-
primaryAction={service.action}
258-
tone={service.tone}
259-
/>
260-
</Col>
261-
))}
262-
</Row>
263-
) : null}
251+
<Row gutter={[24, 24]}>
252+
{dashboard.aiServices.map((service) => (
253+
<Col xs={24} xl={12} key={service.id}>
254+
<OperationalCard
255+
item={service}
256+
primaryAction={dashboard.aiLayer.enabled ? service.action : undefined}
257+
tone={service.tone}
258+
/>
259+
</Col>
260+
))}
261+
</Row>
264262

265263
<SectionBand
266264
body={t(

apps/atlas-dashboard/src/locales/en.json

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
"operatingDoctrineTitle": "How the lab is designed"
3535
},
3636
"sections": {
37-
"aiBodyDisabled": "The AI LLM layer remains optional. When it is off, the dashboard shows the exact command required to enable it.",
38-
"aiBodyEnabled": "The AI LLM layer is online: the dashboard takes you into Open WebUI or the Ollama APIs with credentials and operating context always visible.",
37+
"aiBodyDisabled": "The AI layer remains optional. When it is off, the dashboard shows the exact command required to enable it.",
38+
"aiBodyEnabled": "The AI layer is online: the dashboard takes you into Open WebUI, the Ollama APIs, and also includes n8n in the same section.",
3939
"aiKicker": "optional plane",
40-
"aiTitle": "AI LLM Layer",
40+
"aiTitle": "AI",
4141
"footerBody": "Four quick signals on routing, persistence, recommended usage, and layer segmentation.",
4242
"footerKicker": "atlas signals",
4343
"footerTitle": "Operational closeout",
@@ -62,7 +62,7 @@
6262
"cards": {
6363
"openBriefing": "Open briefing",
6464
"tones": {
65-
"ai": "AI LLM",
65+
"ai": "AI",
6666
"core": "Core",
6767
"neutral": "Neutral",
6868
"workbench": "Workbench"
@@ -111,28 +111,35 @@
111111
"rootName": "root name",
112112
"rootPassword": "root password",
113113
"rootUser": "root user",
114+
"setupUrl": "setup URL",
114115
"superuser": "superuser",
115116
"wanModel": "wan model",
116117
"usage": "usage"
117118
},
118119
"values": {
119120
"browserConsole": "browser console",
120121
"browserWorkspace": "browser workspace",
122+
"deploymentGuide": "deployment guide",
123+
"designCollaboration": "design collaboration",
124+
"directAppOnboarding": "direct app onboarding",
121125
"directAppLogin": "direct app login",
126+
"guidedSetup": "guided setup",
122127
"imageStudio": "image studio",
123128
"localInferenceApi": "local inference API",
124129
"password": "password",
130+
"privateCloud": "private cloud",
131+
"projectHub": "project hub",
125132
"protectedApi": "protected API",
126133
"sharedDatabase": "shared database",
127134
"videoStudio": "video studio",
128135
"workflowControl": "workflow control",
129136
"alwaysOnForge": "always-on forge"
130137
},
131138
"dashboard": {
132-
"coreLayerSummary": "Gitea remains the always-on core plane of the lab.",
139+
"coreLayerSummary": "Gitea, Plane, Penpot, and Nextcloud AIO form the always-on core plane of the lab.",
133140
"accessNotes": {
134-
"aiDisabled": "The AI LLM layer no longer starts by default: the deck marks it as optional instead of pretending that it is online.",
135-
"aiEnabled": "Open WebUI and Ollama are really online and reachable on the AI LLM gateway ports.",
141+
"aiDisabled": "The AI layer no longer starts by default: the deck marks it as optional instead of pretending that it is online.",
142+
"aiEnabled": "Open WebUI and Ollama are really online and reachable on the AI gateway ports.",
136143
"credentials": "Operational credentials are exposed here and remain aligned with the lab bootstrap.",
137144
"https": "All browser ingresses use localhost with dedicated HTTPS, without custom DNS or hosts-file edits.",
138145
"workbenchDisabled": "Workbench and Postgres stay separated from the core operating plane until you enable the dedicated layer.",
@@ -144,12 +151,17 @@
144151
"ollama": "Protected Ollama API",
145152
"openWebUi": "Local Open WebUI"
146153
},
147-
"description": "Optional AI LLM layer for local conversational workflows and GPU-backed LLM inference. The deck enables it only when you explicitly request it.",
148-
"summaryDisabled": "AI LLM layer is off. No LLM service is started or exposed until you enable the dedicated flag.",
149-
"summaryEnabled": "Open WebUI and Ollama are active and served through the AI LLM gateway.",
150-
"title": "AI LLM Layer"
154+
"description": "Optional AI layer for local conversational workflows and GPU-backed LLM inference. The deck enables it only when you explicitly request it.",
155+
"summaryDisabled": "The AI layer is off. No AI service is started or exposed until you enable the dedicated flag.",
156+
"summaryEnabled": "Open WebUI and Ollama are active and served through the AI gateway.",
157+
"title": "AI"
151158
},
152159
"aiServices": {
160+
"n8n": {
161+
"action": "Open n8n",
162+
"description": "Workflow automation platform for orchestrating integrations, agents, and AI flows, even outside the lab's local runtime.",
163+
"title": "n8n"
164+
},
153165
"ollama": {
154166
"action": "Open API endpoint",
155167
"description": "Secure gateway to the local Ollama endpoint. It serves LLMs and embedding models with GPU acceleration from the host node.",
@@ -175,15 +187,15 @@
175187
"label": "segmentation"
176188
},
177189
"usage": {
178-
"body": "Gitea is the always-on core plane; AI agents, AI LLM, AI image, AI video, and workbench layers are enabled only when they are actually needed.",
190+
"body": "Gitea, Plane, Penpot, and Nextcloud AIO stay on as the core plane; AI, AI image, AI video, and workbench layers are enabled only when they are actually needed.",
179191
"label": "usage"
180192
}
181193
},
182194
"hero": {
183195
"eyebrow": "atlas command deck",
184196
"pills": {
185-
"aiActive": "ai-llm active",
186-
"aiOptional": "ai-llm optional",
197+
"aiActive": "ai active",
198+
"aiOptional": "ai optional",
187199
"deck": "deck {{localUrl}}",
188200
"host": "host {{publicUrl}}",
189201
"httpsOnly": "https ingress only",
@@ -197,20 +209,20 @@
197209
"networkMapDescription": "Read the lab topology and the published network planes.",
198210
"networkMapLabel": "Network map"
199211
},
200-
"summary": "Unified control room for repository work, optional AI agents automation, optional AI LLM services, AI image generation, AI video generation, and development environments. Browser ports stay on HTTPS over localhost, while Postgres from the workbench layer also exposes a host-side TCP port.",
212+
"summary": "Unified control room for repository work, project coordination, design collaboration, private cloud access, optional AI tooling, and development environments. Browser ports stay on HTTPS over localhost, while Postgres from the workbench layer also exposes a host-side TCP port.",
201213
"titleLines": {
202214
"first": "LAB",
203215
"second": "ATLAS"
204216
}
205217
},
206218
"metrics": {
207219
"aiDisabled": {
208-
"caption": "AI LLM layer not active",
209-
"label": "ai-llm live"
220+
"caption": "AI layer not active",
221+
"label": "ai live"
210222
},
211223
"aiEnabled": {
212-
"caption": "AI LLM layer published on the dedicated gateway",
213-
"label": "ai-llm live"
224+
"caption": "AI layer published on the dedicated gateway",
225+
"label": "ai live"
214226
},
215227
"core": {
216228
"caption": "always-on services with mandatory bootstrap",
@@ -233,7 +245,7 @@
233245
"title": "Network Map"
234246
},
235247
"operatingCharter": {
236-
"ai": "Open WebUI and Ollama live in an explicitly optional AI LLM layer.",
248+
"ai": "The AI section groups Open WebUI, Ollama, and n8n into an optional dashboard plane.",
237249
"gitea": "Gitea governs code, review, and Git governance for the project.",
238250
"workbench": "Code-server and Postgres stay in a workbench plane separated from the core."
239251
},
@@ -242,6 +254,25 @@
242254
"action": "Open Gitea",
243255
"description": "Internal Git forge for repositories, issues, review, and the lab's technical collaboration flow.",
244256
"title": "Gitea Forge"
257+
},
258+
"nextcloudAio": {
259+
"action": "Open setup UI",
260+
"description": "Self-hosted Nextcloud All-in-One stack routed through the lab gateway. It exposes the application on its dedicated URL once the guided AIO setup has completed.",
261+
"note": "Use the setup UI first. When the Nextcloud application asks for the initial admin account, use the credentials listed here. After AIO provisions the application containers, the main app URL becomes available on the dedicated gateway port.",
262+
"title": "Nextcloud All-in-One",
263+
"usage": "self-hosted deployment"
264+
},
265+
"penpot": {
266+
"action": "Open Penpot",
267+
"description": "Self-hosted Penpot workspace for product design, shared libraries, and collaboration across design and code, with a bootstrap root profile aligned to the lab.",
268+
"title": "Penpot",
269+
"usage": "design and code collaboration"
270+
},
271+
"plane": {
272+
"action": "Open Plane",
273+
"description": "Self-hosted Plane workspace for issue tracking, planning, roadmaps, and internal project coordination, with a bootstrap instance admin aligned to the lab.",
274+
"title": "Plane",
275+
"usage": "project and knowledge management"
245276
}
246277
},
247278
"workbenchLayer": {

0 commit comments

Comments
 (0)