-
Notifications
You must be signed in to change notification settings - Fork 0
Releases: PATILYASHH/VPC
v12.0.0 β Real PTY terminal & AI Agent
6ffec25 Highlights
π₯οΈ Real PTY terminal
The in-app Terminal is now backed by node-pty with xterm.js over a WebSocket. Interactive tools (claude, node, python, vim, ssh, top) work the same as in a native terminal β color, ANSI, cursor movement, Ctrl+C, the works.
- Augmented PATH per command picks up newly installed binaries (npm globals, WinGet, pip user dirs) without a backend restart.
- Windows curl auto-fix:
--ssl-no-revokeinjected on the fly + persistent_curlrcsoCRYPT_E_NO_REVOCATION_CHECKstops blocking installs.
π€ AI Agent
- Chat tab is reachable again β was orphaned in the AI Agent module.
- Claude CLI status detection fixed β was using stale PATH and timing out; now PATH-scans the binary directly.
- VPC Bot auto-creates default user so chat is immediately usable on first launch.
- Todo update returns proper 404 (was returning 200 with
{error}).
πΏ Prod β Beta forks
Forks now clone schema + data by default. The opt-in checkbox flipped to opt-out for schema-only forks.
β»οΈ Robust restart
The Restart button now actually restarts VPC under nodemon, PM2, or plain node β used to silently no-op outside PM2.
π Real upgrade progress
The upgrade bar shows real % from the backend across 6 named steps (git pull, backend deps, frontend deps, build, migrations, finalize). No more fake 60%.
Files added
backend/services/ptyService.jsbackend/scripts/respawn.jsbackend/utils/shellEnv.js
Upgrade path
Existing instances: open VPC Store β Update, then Restart VPC when prompted. The upgrader pulls the new commit, runs npm install in both packages (picks up node-pty, ws, xterm), rebuilds the frontend, runs migrations, and surfaces the restart banner.
π€ Generated with Claude Code
Assets 2
v11.0.0 β OAuth, Staged Deploys & PR Previews
Highlights
π DB Auth β Google & GitHub OAuth
Supabase-style social sign-in, configured per project. Each project DB now has an auth_providers table; client_secret is AES-GCM encrypted. End users hit /api/db/auth/v1/<slug>/authorize/<provider> and come back with a JWT identical to the existing email login. Auto-link by email, avatar + provider badges in the user list, collapsed-by-default provider cards.
π Web Hosting β Staged Deploys + Instant Rollback
Every deploy now builds into <slug>__staging, healthchecks (HTTP probe for node apps, HTML check for static), then atomically swaps with the live folder. Previous build is archived to <slug>__versions/v_<ts>_<sha>/. Last 3 versions kept for one-click rollback β new "Version History" card in the Overview tab. The live version stays online if a deploy fails.
π€ AI Fix β now safe and reliable
The old AI Fix mutated the live build and could take the site down. Now it operates on the preserved staging dir (kept on disk after a failed deploy), applies AI patches, runs the full staged pipeline, and only swaps to live if the new build healthchecks green.
π Integrations β usage stats & fixed UI
GET /admin/integrations now returns per-integration usage data (total uses, unique apps, last used, per-app breakdown). New summary tiles (Connected Β· Total Uses Β· Apps Using Β· Last Activity) and click-to-expand per-app usage on each card. The "Connect a Service" picker is now scrollable, searchable, and grouped by category.
π PR Previews β Netlify/Vercel-style
Open a PR β automatic preview deploy at /<slug>-pr-<n>/ on its own PM2 port. Sticky GitHub PR comment with the preview URL, build status, and commit SHA. Auto-rebuilds on push, tears down on close/merge. Webhook with HMAC SHA-256 verification, manual rebuild/close from a new "Previews" tab. Forks supported via the saved GitHub integration token.
Migrations
All schema changes are self-healing on first request β no manual migration needed:
auth_usersextended withprovider,provider_id,full_name,avatar_url- New tables:
auth_providers(per project),web_hosting_versions,web_hosting_previews web_hosting_projectsaddspreviews_enabled,previews_webhook_secret
Files
backend/services/dbAuthOAuthService.js(new)backend/routes/dbAuthOAuth.js(new)backend/services/webHostingPreviewService.js(new)backend/routes/webHostingWebhook.js(new)frontend/src/components/ui/switch.jsx(new)- Plus updates to
dbService,webHostingService,routes/db,routes/webHosting,routes/integrations,server.js,Auth.jsx,IntegrationMonitor.jsx,webhosting/ProjectDashboard.jsx
π€ Generated with Claude Code
Assets 2
v10.0.0 β 1-click Pipeline Promote + Integrations Platform
VPC Deploy Log
v10.0.0 β 2026εΉ΄04ζ22ζ₯
A forward-compatible release. No data loss paths, every migration is idempotent
and every new column has a safe default. Existing integrations, backups, pipelines
and sessions continue to work without manual intervention.
π Highlights
- Perfect 1-click Pipeline promotion β preflight plan, typed confirmation, auto-snapshot, staged execute, one-click rollback.
- Exact beta fork β full data copy (not just schema), auto-deploy, env-var remap from prod β beta DB.
- GitHub-style browser sign-in across VS Code (
vpc-sync-10.0.0.vsix) and CLI (vpc-pull login) β no more pasting PATs. - 33 integration platforms (up from 7) with one-click automations (SupabaseβBackup, GitHubβImport, SlackβAlerts, CloudflareβDNS+SSL).
- Supabase backup destination β off-site backups on a schedule + cloud-restore fallback.
- Lazy-loaded apps β main bundle 1.2 MB β 498 KB (β59%).
- System Health widget β central logger captures every error, Dashboard surfaces 24h counts.
- Versioned encryption with
rekey.jsscript for key rotation. - Baseline tests via
node --testβ 8/8 passing.
π¦ Deploy checklist
Run in order. Each step is idempotent and safe to re-run.
# 1. Apply new migrations (all use CREATE TABLE IF NOT EXISTS / ADD COLUMN IF NOT EXISTS) psql "$DATABASE_URL" < backend/migrations/041_vpc_device_codes.sql psql "$DATABASE_URL" < backend/migrations/042_vpc_backup_destinations.sql psql "$DATABASE_URL" < backend/migrations/043_vpc_pipeline_promotions.sql psql "$DATABASE_URL" < backend/migrations/044_vpc_system_logs.sql # 2. Restart backend β new schedulers + logger wire up on boot pm2 restart vpc-backend # or `systemctl restart vpc` # 3. Rebuild frontend (lazy-split chunks) cd frontend && npm install && npx vite build && cd .. # 4. (Optional) Install the new VS Code extension code --install-extension vscode-extension/vpc-sync-10.0.0.vsix --force # 5. Verify cd backend && npm test # 8/8 should pass curl http://localhost:8001/health
π Backward-compatibility notes
| Change | Existing behavior preserved? |
|---|---|
vpc_integrations.visibility column added |
Default 'shared' β all existing integrations visible to every admin as before. |
vpc_integrations.created_by column added |
Nullable, default NULL β no backfill needed. |
vpc_settings.enc_key_version column added |
Default 1 β existing blobs continue decrypting. |
Encryption blob format: new blobs prefix v{N}: |
decrypt() accepts both legacy and versioned formats β verified by smoke test encryption: decrypt handles legacy (v-less) format. |
pipelineService.forkToBeta() default copyData |
Was false, now true (per user request for exact forks). Frontend always passes explicit { copyData: true }; direct API callers using the default now get the new behavior. |
POST /pipelines/:id/promote response shape |
β Changed β old response { schemaPRs, deployedSites, errors } moved to /pipelines/:id/promote-legacy. New response { run_id, status, backup_id, schema_applied, deployed, deployErrors, stages }. Only caller was the web UI, which is updated. |
integrationService.getAll(pool) |
Backward compatible β existing signature still works. Optional { forUserId } param enables per-admin filtering. |
| Lazy-loaded apps | First open of each app shows loading spinner briefly; functional behavior unchanged. |
π New files
Backend
backend/migrations/041_vpc_device_codes.sqlbackend/migrations/042_vpc_backup_destinations.sqlbackend/migrations/043_vpc_pipeline_promotions.sqlbackend/migrations/044_vpc_system_logs.sqlbackend/routes/deviceAuth.jsβ VS Code / CLI sign-in flowbackend/routes/realtime.jsβ SSE event streambackend/services/backupScheduler.jsβ polls supabase destinations every 60sbackend/services/credentialResolver.jsβ shared integration creds for any appbackend/services/integrationAutomations.jsβ one-click automatorsbackend/services/pipelinePromoteService.jsβ staged promote + rollbackbackend/services/realtimeBus.jsβ in-process pub/sub for SSEbackend/services/supabaseBackupService.jsβ upload & restore via Supabase Storagebackend/scripts/rekey.jsβ re-encrypt all secrets with new keybackend/utils/logger.jsβ central logger writing tovpc_system_logsbackend/views/deviceApprove.htmlβ browser approval page for device flowbackend/tests/smoke.test.jsβ 8 zero-dep smoke tests
Frontend
frontend/src/components/apps/BackupDestinations.jsxfrontend/src/components/apps/Connections.jsx(rewritten β 33 platforms, categories, automations)frontend/src/components/apps/Dashboard.jsxfrontend/src/components/desktop/CommandPalette.jsxfrontend/src/components/desktop/ContextBreadcrumb.jsxfrontend/src/components/desktop/JobQueue.jsxfrontend/src/components/desktop/KeyboardShortcutsOverlay.jsxfrontend/src/components/desktop/NotificationCenter.jsxfrontend/src/components/desktop/StatusBar.jsxfrontend/src/components/desktop/WorkspaceSwitcher.jsxfrontend/src/components/integrations/*frontend/src/components/pipeline/PromoteDialog.jsxfrontend/src/components/widgets/*(incl.SystemHealthWidget)frontend/src/hooks/useGlobalKeyboard.jsfrontend/src/lib/realtime.jsfrontend/src/lib/widgetRegistry.jsfrontend/src/stores/useCommandStore.jsfrontend/src/stores/useContextStore.jsfrontend/src/stores/useDashboardStore.jsfrontend/src/stores/useIntegrationsStore.jsfrontend/src/stores/useJobStore.jsfrontend/src/stores/useNotificationStore.jsfrontend/src/stores/useWorkspaceStore.js
VS Code Extension (packaged as vpc-sync-10.0.0.vsix)
vscode-extension/src/auth/deviceFlow.tsβ AuthenticationProvider + device-flow pollervscode-extension/src/vcs/merge.tsβ 3-way merge port
CLI
cli/src/commands/login.jsβvpc-pull loginbrowser sign-in
π©Ί New endpoints
# Device auth (public + JWT mix)
POST /api/admin/auth/device/code
POST /api/admin/auth/device/token
GET /api/admin/auth/device/pending?code=XXXX
POST /api/admin/auth/device/confirm { user_code }
POST /api/admin/auth/device/deny { user_code }
# Backup destinations
GET /api/admin/backup/destinations
POST /api/admin/backup/destinations
PATCH /api/admin/backup/destinations/:id
DELETE /api/admin/backup/destinations/:id
POST /api/admin/backup/destinations/:id/test
POST /api/admin/backup/destinations/:id/run
GET /api/admin/backup/destinations/:id/runs
# Integration automations
GET /api/admin/integrations/automations
POST /api/admin/integrations/:id/automate { automation, options }
# Perfect pipeline promote
GET /api/admin/pipeline/pipelines/:id/promote/preflight
POST /api/admin/pipeline/pipelines/:id/promote { confirmations, skipBackup, dryRun }
POST /api/admin/pipeline/pipelines/:id/promote-legacy (old behavior preserved)
GET /api/admin/pipeline/pipelines/:id/promotions
POST /api/admin/pipeline/pipelines/:id/promotions/:runId/rollback
# Logs
GET /api/admin/logs/health
GET /api/admin/logs/system?level=error&limit=100
# Static page
GET /auth/device (approval UI for device codes)
β Rollback plan
If something goes wrong after deploy:
- Database: new tables are independent. Drop them if needed β nothing else depends on them:
DROP TABLE IF EXISTS vpc_pipeline_promotions CASCADE; DROP TABLE IF EXISTS vpc_system_logs; DROP TABLE IF EXISTS vpc_backup_destination_runs; DROP TABLE IF EXISTS vpc_backup_destinations; DROP TABLE IF EXISTS vpc_device_codes; ALTER TABLE vpc_integrations DROP COLUMN IF EXISTS visibility; ALTER TABLE vpc_integrations DROP COLUMN IF EXISTS created_by; ALTER TABLE vpc_settings DROP COLUMN IF EXISTS enc_key_version;
- Code:
git revert HEADand redeploy. Because migrations are additive,
reverting code without reverting the schema is also safe β the extra tables
simply sit unused. - Pipeline promotions in flight: any running promotion records its
pre-promote backup invpc_pipeline_promotions.backup_id. Use
POST /promotions/:runId/rollbackor restore the backup directly
via the Backup Manager.
β Verification
cd backend && npm test
β encryption: round-trip preserves plaintext
β encryption: decrypt handles legacy (v-less) format
β encryption: decrypt returns null for garbage
β integrations: all types have name + fields
β integrations: every type has a tester case
β automations: registry is consistent
β pipeline promote service: exports expected API
β logger: forSource returns level methods
i 8 pass, 0 fail
Frontend build: β built in 8.07s β main chunk 498 KB (was 1,204 KB).
Assets 3
v2.1.0 β AI Agent & Multi-Provider Intelligence
v2.1.0 β AI Agent & Multi-Provider Intelligence
Highlights
The AI Agent is now the brain of your server. It thinks, diagnoses, and acts autonomously β with support for Anthropic Claude, OpenAI GPT, and Ollama (local models). Chat with your server from Telegram or the web dashboard, and it'll deploy, fix, alert, and track tasks without being told twice.
New Features
AI Agent (Jarvis)
- Multi-provider AI support β switch between Claude, GPT, and local Ollama models
- 30+ built-in tools: deploy, restart, SQL, git, file ops, diagnostics
- Autonomous TODO creation and task tracking
- Persistent memory across conversations
- Approval workflow for dangerous operations
Telegram Bot
- Proactive alerts for deploys, PRs, backups, upgrades, and resource warnings
- Full AI agent chat from your phone
- Team broadcast messaging
Terminal
- New
vpc aicommands:ask,sql,summarize logs,providers,use <provider>
Desktop
- Right-click copy, cut, paste
Assets 2
Version 1 - The Start
0.0 Rename BanaDB to DB, add professional README, logo, and LICENSE for o...