Skip to content

Refactor CI/CD pipeline and add Coeadapt Launcher desktop app#159

Open
alexander-acker wants to merge 362 commits intokasmtech:developfrom
alexander-acker:claude/vm-progress-tracking-LkwEk
Open

Refactor CI/CD pipeline and add Coeadapt Launcher desktop app#159
alexander-acker wants to merge 362 commits intokasmtech:developfrom
alexander-acker:claude/vm-progress-tracking-LkwEk

Conversation

@alexander-acker
Copy link

Summary

This PR introduces a major refactor of the CI/CD infrastructure and adds a new cross-platform desktop application (Coeadapt Launcher) for managing the Career-Box workspace. The changes modernize the build system, update base images, and provide users with a native desktop experience.

Key Changes

CI/CD Pipeline Refactor

  • Templated CI configuration: Replaced 1000+ line monolithic .gitlab-ci.yml with a template-based system using ci-scripts/template-vars.yaml and ci-scripts/gitlab-ci.template
  • Dynamic job generation: Introduced Python templating (ci-scripts/template-gitlab.py) to generate CI jobs from YAML configuration
  • Modular build scripts: Extracted build logic into separate shell scripts (build.sh, test.sh, manifest.sh, app-layer.sh, readme.sh)
  • Updated Docker versions: Bumped from docker:dind to docker:24.0.6-dind and docker:28.0.0 in template

Base Image Updates

  • Deprecated old images: Removed Focal, Alpine 3.17, CentOS 7, Oracle 7, Fedora 37, Parrot OS 5, and Remnux Focal
  • Added newer images: Ubuntu Noble, Debian Bookworm/Trixie, Alpine 3.19/3.20/3.21, Fedora 39/40/41, Parrot OS 6, RHEL 9
  • Updated all Dockerfiles: Changed base image references from core-ubuntu-focal to core-ubuntu-jammy across 50+ application images

New Application Images

  • Cyberbro: Firefox-based security browser
  • Forensic OSINT: Ubuntu with Google Chrome and forensic extensions
  • Spiderfoot: OSINT automation framework
  • Nessus: Vulnerability scanner
  • Obsidian: Note-taking application
  • Zorin OS: Desktop environment variants
  • Redroid: Remote Android container
  • KasmOS: Custom desktop environment

Coeadapt Launcher (New Desktop App)

  • Cross-platform desktop application: Built with Tauri v2 + React + TypeScript
  • Docker/Podman detection: Automatically detects container runtime and guides setup
  • Workspace management: Start/stop/pull workspace containers with progress tracking
  • Claude AI integration: MCP server for AI-assisted workspace operations
  • Settings & authentication: Clerk-based auth with device token fallback for offline mode
  • Health monitoring: Real-time container health, disk usage, and progress tracking
  • Native features: System tray integration, SSL certificate management, disk space warnings

MCP Server Tools

  • Computer use: Screen capture and input automation via xdotool
  • Progress tracking: Monitor workspace setup and task completion
  • Filesystem operations: File read/write with sandboxing
  • Screenshot capture: For AI vision capabilities
  • Application launcher: Execute commands within workspace
  • Workspace control: Container lifecycle management

Documentation & Security

  • Updated README: Rebranded to "Career-Box" with comprehensive project overview
  • Security hardening guide: New SECURITY.md documenting vulnerability fixes
  • Contributing guidelines: Added CONTRIBUTING.md for open-source collaboration
  • License update: Clarified licensing terms in LICENSE.md

Configuration & Build

  • Variable consolidation: Renamed CORE_IMAGE_TAGBASE_TAG, CORE_IMAGEBASE_IMAGE
  • Runset organization: Grouped images into build sets (set-a, set-b) for parallel CI execution
  • Change detection: Added per-image change file tracking for efficient rebuilds
  • Chrome policies: Added URL blocklist policy for security hardening

Notable Implementation Details

  • The CI refactor maintains backward compatibility while reducing configuration duplication by ~90%
  • Launcher uses Tauri's native bridge for secure Docker/Podman communication
  • MCP server enables Claude to interact with the workspace environment for automation
  • All deprecated images cleanly removed; migration path documented in

https://claude.ai/code/session_015jp8qNZT6kWZ8TtehTg3Uy

j-travis and others added 30 commits July 1, 2024 22:29
Resolve KASM-6039 "Feature/ noble dind"

Closes KASM-6039

See merge request kasm-technologies/internal/workspaces-images!185
KASM-6098 Update hunchly script to point to offical URL

Closes KASM-6098

See merge request kasm-technologies/internal/workspaces-images!188
KASM-6191 Update slack download location

Closes KASM-6191

See merge request kasm-technologies/internal/workspaces-images!189
KASM-5955 kasmos readme

Closes KASM-5955

See merge request kasm-technologies/internal/workspaces-images!191
KASM-6265 Add Chrome to telegram image

Closes KASM-6265

See merge request kasm-technologies/internal/workspaces-images!192
KASM-6300 Add Chrome to vscode

Closes KASM-6300

See merge request kasm-technologies/internal/workspaces-images!193
KASM-6299 Disable chrome privacy and search engine nags

Closes KASM-6299

See merge request kasm-technologies/internal/workspaces-images!194
Remove EOL images
KASM-6444 update pathing for retroarch init

See merge request kasm-technologies/internal/workspaces-images!195
KASM-6388

See merge request kasm-technologies/internal/workspaces-images!197
KASM-6450 rebase retroarch to Jammy and update config

Closes KASM-6450

See merge request kasm-technologies/internal/workspaces-images!198
KASM-6504 update demo button

Closes KASM-6504

See merge request kasm-technologies/internal/workspaces-images!199
KASM-6476 update gitlab ci variables

Closes KASM-6476

See merge request kasm-technologies/internal/workspaces-images!200
Resolve KASM-6543 "Feature/ add chromium alpine"

Closes KASM-6543

See merge request kasm-technologies/internal/workspaces-images!201
j-travis and others added 30 commits November 20, 2025 10:23
…'develop'

KASM-7939 install unzip on chrome and chromium

Closes KASM-7939

See merge request kasm-technologies/internal/workspaces-images!370
… into 'develop'

KASM-7938 fix sublime text installation

Closes KASM-7938

See merge request kasm-technologies/internal/workspaces-images!375
KASM-7979 fix dind images

Closes KASM-7979

See merge request kasm-technologies/internal/workspaces-images!382
…elop' into 'develop'

KASM-8049 fix slack installation on opensuse

Closes KASM-8049

See merge request kasm-technologies/internal/workspaces-images!391
…develop'

KASM-8051 pin pinta version to 3.0.5

Closes KASM-8051

See merge request kasm-technologies/internal/workspaces-images!395
… scripts, and update Kasm Firefox Dockerfile.
…g application management, command execution, filesystem access, and environment provisioning scripts.
…health checks, and system tray functionality.
Rewrite README with full project narrative — what Career-Box is, how
Kasm Workspaces and OpenClaw combine to create an AI-powered career
workspace, architecture diagrams, 80+ app catalog, and quick start
guide with screenshots.

Security hardening across upstream Kasm scripts: remove gateway auth
bypass, eliminate passwordless sudo, secure VPN credentials, enforce
TLS validation, lock services to localhost, fix CI SSH key permissions,
and harden OpenClaw config directory.

Refine the CoeAdapt Launcher UI: polished components, settings page
with AI/Workspace/General tabs, toggle switches, improved setup wizard,
MCP health monitoring, and branding assets.

Add CONTRIBUTING.md, update LICENSE.md with dual Kasm/CoeAdapt
copyright, clean .gitignore to exclude dev artifacts, and remove
internal spec document.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Standardize brand casing from "CoeAdapt" to "Coeadapt" in all
user-facing strings, config files, documentation, Cargo.toml,
tauri.conf.json, and MCP server output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The MCP sidecar binary (coeadapt-mcp-x86_64-pc-windows-msvc.exe) was
committed to git history, exceeding GitHub's 100MB file size limit.
Purged from all history with git-filter-repo. Added .gitkeep so the
binaries/ directory exists for local builds while contents stay ignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the sparse build instructions with a proper "For developers"
section that orients new contributors — explains the two halves of
the project (launcher vs workspace images), setup steps, where the
MCP sidecar binary goes, and a "where to start" table pointing to
the right directories by interest area.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Welcome new contributors with the why behind Career-Box — the
responsibility to ensure no one is unequipped for the age of AI,
the belief that meaningful work is deeply personal and worth
protecting, and the vision of AI as the great equalizer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add settings store defaults (memory, password, auto-start flags),
fix toggle switch off-state color, and add missing CSS custom
properties for accent and tertiary text colors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…, chat functionality, and Tauri backend integration.
…ction status, and SSL certificate management.
… build, CLI, gateway, and system integration.
…vices

Implement two lightweight Python services that run inside the Kasm workspace
container to enable automatic progress tracking and full computer control
from the AI agent:

VM-side services (src/ubuntu/install/coeadapt-agent/):
- Progress tracker (port 7700): Persistent JSON store for career activities,
  goals, skills, milestones, assessments, and daily streaks. Includes
  optional platform sync and a full REST API.
- Computer-use service (port 7701): X11 automation via xdotool for mouse
  movement, clicks, drags, scrolling, keyboard input, window management,
  and screenshot capture with region support.
- Install script with XFCE autostart, health checks, and respawn loop.

MCP server tools (coeadapt-launcher/mcp-server/):
- 12 new computer-use tools: screenshot, mouse move/click/scroll/drag,
  keyboard type/press, window list/focus/active, screen size, mouse position.
- 8 new progress tools: log_activity, create_goal, update_goal, record_skill,
  update_skill, add_milestone, record_assessment, get_progress_summary.
- Proxy endpoints (/progress-summary, /agent-health) for dashboard access.
- Updated take_screenshot to prefer the computer-use service with fallback.

Launcher frontend (coeadapt-launcher/src/):
- ProgressCard component showing completion %, streak, stats grid, and
  agent service health indicators.
- useProgress hook polling the MCP proxy endpoints.
- Full TypeScript types for progress data model.
- Dashboard integration showing progress when workspace is running.

https://claude.ai/code/session_015jp8qNZT6kWZ8TtehTg3Uy
…icts

Restore ci-scripts/test.sh to the upstream develop version, reverting
the SSH StrictHostKeyChecking and chmod changes introduced in the
open-source preparation commit. These changes conflict with upstream
develop and are not part of this feature branch's scope.

https://claude.ai/code/session_015jp8qNZT6kWZ8TtehTg3Uy
…solve merge conflicts

Restore these three files to their original upstream develop versions,
reverting security hardening changes (localhost-only port binding, sudo
lockdown, pipe-to-bash removal, file permission fixes) that were
introduced in earlier commits and conflict with upstream develop.

https://claude.ai/code/session_015jp8qNZT6kWZ8TtehTg3Uy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.