diff --git a/CHANGELOG.md b/CHANGELOG.md
index 76af3d56c..9f4a9358c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,19 @@
All notable changes to the OpenAgents project will be documented in this file.
-## [0.6.8] - 2025-10-09
+## [0.6.9] - 2026-04-24
### Added
+- Complete local workspace integration (Frontend & Backend run locally)
+- Configurable Workspace Endpoint within the Launcher Settings UI
+- Hot-reloading of the AgentConnector when the Workspace Endpoint is changed
+- `dev-local-frontend` and `dev-local-backend` Makefile targets
+
+### Fixed
+- Fixed Alembic migration `005` incorrect PostgreSQL UUID type usage
+- Mapped local frontend routing `http://localhost:3001` when workspace endpoint targets localhost
+
+## [0.6.8] - 2025-10-09
### Changed
diff --git a/changelogs/notes/2026-04-24-local-workspace-run.md b/changelogs/notes/2026-04-24-local-workspace-run.md
new file mode 100644
index 000000000..1d4d0cd86
--- /dev/null
+++ b/changelogs/notes/2026-04-24-local-workspace-run.md
@@ -0,0 +1,26 @@
+# Local Workspace Integration
+
+**Date:** 2026-04-24
+**Branch:** `feature/local-workspace-run`
+
+## Objective
+Enable full local execution of the OpenAgents Workspace backend and frontend without relying on external remote endpoints, and seamlessly integrate the local stack with the OpenAgents Launcher.
+
+## Technical Details
+
+### 1. Database & Alembic Migrations
+- Fixed an issue in Alembic migration `005_add_workspace_collaborators.py` where the UUID type generated `Text` columns causing foreign key relation errors. Replaced `sa.Text()` with `postgresql.UUID(as_uuid=True)`.
+- Corrected migration `006_add_browser_contexts.py` which attempted to alter non-existent tables.
+- Provided local `script.py.mako` Alembic templates to prevent autogenerate failures in local environments.
+
+### 2. Workspace Startup Enhancements
+- Added `dev-local-backend` and `dev-local-frontend` directives to `workspace/Makefile`.
+- Enabled rapid, Docker-free startup using `uvicorn` and `next dev`.
+
+### 3. Launcher Hot-Reloading & UI Configuration
+- **Dynamic Endpoint Settings:** Modified `packages/launcher/src/renderer/index.html` and `renderer.js` to add a new UI configuration for the Default Workspace Endpoint in the Settings tab.
+- **Immediate Effect:** Modified `packages/launcher/src/main/main.js` and `packages/launcher/src/main/agent-manager.js` to support hot-reloading. Updating the workspace endpoint from the UI automatically calls `agentManager.reloadCore()`, immediately switching the target backend for workspace creation and management.
+- **Frontend URL Mapping:** Updated the "Open Workspace in Browser" logic to properly route local backend endpoints (`localhost:8000`) to the Next.js frontend port (`localhost:3001`).
+
+## Outcome
+The local workspace environment is now fully self-contained. The user can start the backend, frontend, and Launcher, map the endpoint to `localhost:8000` from the UI settings, and enjoy a high-performance local agent development flow.
diff --git a/packages/launcher/src/main/agent-manager.js b/packages/launcher/src/main/agent-manager.js
index 02fbdf1ef..5ac82f2da 100644
--- a/packages/launcher/src/main/agent-manager.js
+++ b/packages/launcher/src/main/agent-manager.js
@@ -37,7 +37,11 @@ class AgentManager {
this._store = store;
if (!core) core = loadCore();
if (core) {
- this._connector = new core.AgentConnector({ configDir: CONFIG_DIR });
+ const endpoint = this._store.get('workspaceEndpoint') || process.env.OPENAGENTS_WORKSPACE_ENDPOINT;
+ this._connector = new core.AgentConnector({
+ configDir: CONFIG_DIR,
+ workspaceEndpoint: endpoint
+ });
} else {
// Core not available yet — will be initialized after install
this._connector = null;
@@ -58,7 +62,11 @@ class AgentManager {
for (const k of cacheKeys) delete require.cache[k];
core = loadCore();
if (core) {
- this._connector = new core.AgentConnector({ configDir: CONFIG_DIR });
+ const endpoint = this._store.get('workspaceEndpoint') || process.env.OPENAGENTS_WORKSPACE_ENDPOINT;
+ this._connector = new core.AgentConnector({
+ configDir: CONFIG_DIR,
+ workspaceEndpoint: endpoint
+ });
}
return !!core;
}
diff --git a/packages/launcher/src/main/main.js b/packages/launcher/src/main/main.js
index 6c891bb29..4a6692376 100644
--- a/packages/launcher/src/main/main.js
+++ b/packages/launcher/src/main/main.js
@@ -556,7 +556,12 @@ function setupIPC() {
// Settings
ipcMain.handle('settings:get', (_e, key) => store.get(key));
- ipcMain.handle('settings:set', (_e, key, value) => store.set(key, value));
+ ipcMain.handle('settings:set', (_e, key, value) => {
+ store.set(key, value);
+ if (key === 'workspaceEndpoint' && agentManager) {
+ agentManager.reloadCore();
+ }
+ });
// Health check
ipcMain.handle('agents:health-check', (_e, type) => agentManager.healthCheck(type));
diff --git a/packages/launcher/src/renderer/index.html b/packages/launcher/src/renderer/index.html
index a6c86f025..24611cdbd 100644
--- a/packages/launcher/src/renderer/index.html
+++ b/packages/launcher/src/renderer/index.html
@@ -133,6 +133,15 @@
General
Workspaces
+
+
+
+
+
+
+
Change this to http://localhost:8000 for local development.