Skip to content

VORTEX v0.2.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 17:33
· 129 commits to main since this release

Changelog

New features

  • f3fb49f feat(agent): --cwd flag + working-dir wiring + top-bar display
  • d386922 feat(agent): POST /api/agents/approve endpoint
  • 5a53572 feat(agent): TUI approval UI + slash commands
  • 16b7e76 feat(agent): auto-detect project context on first message, include in AI system prompt
  • ce1ccbf feat(agent): conversation memory persisted to disk, context passed to AI
  • f32c9bc feat(agent): coordinator local-tool execution + approval routing
  • 9ba6545 feat(agent): forge progress streaming to TUI
  • 1f7bb27 feat(agent): git tools — status/diff/commit/add with approval gate
  • 1bbde1a feat(agent): local filesystem + terminal tools
  • dac9a9c feat(agent): search_files and find_files tools with slash commands
  • 4e3edbf feat(agent): undo last file write, backup before overwrite
  • 3dad4ca feat(forge): structured ClarifyingQuestion with options (File 1/3)
  • 49e693a feat(m10): wire agent runtime into start + API
  • 143d148 feat(m10.1): agent core types + lifecycle state machine
  • 090d271 feat(m10.2,m10.3): tool registry + sandboxed execution
  • ba0f6e0 feat(m10.4): inter-agent message bus
  • 782c633 feat(m10.5): coordinator agent + intent routing
  • 2be2bb2 feat(m10.6): persistent agent runtime supervisor
  • 0acf2c3 feat(m11.1): Telegram bot engine via stdlib net/http
  • 5f5fe65 feat(m11.2): WhatsApp Business (Meta Cloud API) via stdlib
  • 4c99a7a feat(m11.3): Slack webhook + slash commands via stdlib
  • 74a8a83 feat(m11.5): AI provider gateway implementing agents.AIGateway
  • af530f6 feat(m11.6): wire messaging into start + API
  • 40e0651 feat(m11.7): unified notification router
  • c5a00b5 feat(m12.1): code-server lifecycle manager
  • 47f5a47 feat(m12.3): browser terminal over WebSocket
  • 87899dc feat(m12.4): browser DB studio
  • 16b5249 feat(m12.5): Git panel via git binary
  • 497959d feat(m12.6): wire VORTEX Studio into start + API
  • c144424 feat(m13): wire Forge into coordinator + API
  • 4136e81 feat(m13.1): Forge intent parser
  • ff3abba feat(m13.3): Forge dependency agent (C2-aware)
  • 7d670c1 feat(m13.4): Forge code generation agent
  • cfddcb1 feat(m13.5): Forge build agent
  • 84857df feat(m13.6): Forge QA gate
  • 3b9dd30 feat(m13.7): Forge delivery agent
  • 80a7fb8 feat(m13.8): Forge orchestrator
  • 8713b1d feat(m2-wiring): add routes array to /health response
  • 1866904 feat(m2-wiring): proxy manager starts listeners per route
  • bceef9c feat(m2-wiring): wire proxy manager into vortex start
  • e33b259 feat(m2.1): TCP connection pool
  • 3104d4c feat(m2.1): TCP listener — accept loop, pool, tunnel dispatch
  • a6555cc feat(m2.1): TCP tunnel bidirectional copy engine
  • 57b9c43 feat(m2.1): smooth weighted round-robin backend selector
  • 694f82d feat(m2.2): HTTP balancer interface, round-robin, least-conn
  • 229da3c feat(m2.2): HTTP reverse proxy handler with retry
  • 1ba5800 feat(m2.2): HTTP router with 6-tier priority matching
  • dad02d3 feat(m2.2): HTTP server with graceful shutdown and stats
  • 8c87796 feat(m2.2): pooled HTTP round-tripper with header injection
  • f4a4c8f feat(m2.3): QUIC/HTTP3 transport via quic-go
  • 5e3c8a9 feat(m2.3): dual-stack QUIC+TCP server with Alt-Svc header
  • 6f4b46b feat(m2.4): ACME certificate manager (vtls)
  • c69755e feat(m2.4): encrypted certificate store (vtls)
  • 512eb09 feat(m2.4): local CA for dev/staging TLS (vtls)
  • e1d1ca8 feat(m2.4): unified TLS manager (vtls)
  • ee284ec feat(m2.5): UDP listener with session table and rate limit
  • e362e05 feat(m2.5): UDP session table with TTL cleanup
  • 08d97ed feat(m2.5): per-IP token bucket rate limiter for UDP
  • 05b55cc feat(m2.6): WebSocket proxy with sticky session support
  • 3655f79 feat(m2.6): protocol gateway — WS, gRPC, HTTP dispatcher
  • cc2301f feat(m2.6): transparent gRPC reverse proxy
  • 65dd138 feat(m3.1): SPIFFE node identity for mTLS mesh
  • 5ed27df feat(m3.1): cluster CA + node cert rotation manager
  • 939aa14 feat(m3.1): mTLS server and client TLS configs
  • cb4de66 feat(m3.1): wire mTLS into TCP routes and proxy manager
  • db70c8e feat(m3.2): ChaCha20-Poly1305 encrypted secret store
  • 4350a86 feat(m3.2): secret resolution and env injection
  • 07ba634 feat(m3.2): vortex secret set/get/list/delete subcommands
  • 49079da feat(m3.2): wire secret store into vortex start
  • b98e437 feat(m3.3): AWS SSM Parameter Store secret adapter
  • 257dc57 feat(m3.3): GCP Secret Manager secret adapter
  • 3409980 feat(m3.3): HashiCorp Vault KV v2 secret adapter
  • 26274d5 feat(m3.3): secret adapter interface and local adapter
  • 3fa23ff feat(m3.3): wire secret adapters into start and secret CLI
  • 1e0eab4 feat(m3.4): OPA policy enforcement HTTP middleware
  • a48f6b9 feat(m3.4): OPA policy engine with hot-reload
  • 481cc6f feat(m3.4): wire OPA policy engine into HTTP proxy
  • 23f0f7e feat(m3.5): API key issuance, verification, persistence
  • 3c8b3ae feat(m3.5): OIDC/SSO login provider and bearer middleware
  • 8493b50 feat(m3.5): RBAC role model and permission checks
  • 0717897 feat(m3.5): combined API key + OIDC auth middleware
  • 81fbb90 feat(m3.5): wire auth into management API
  • d226906 feat(m3.6): HMAC-SHA256 chained append-only audit log
  • dd2b6a8 feat(m3.6): audit log export formats
  • 9b3c9bf feat(m3.6): vortex audit verify/export CLI
  • 5d5676e feat(m3.6): wire audit log into VORTEX events
  • 97bb43a feat(m3.7): HTTP edge token-bucket rate limiter
  • 72c3dbe feat(m3.7): IP allowlist/blocklist with Tor and auto-ban
  • 56b1dbe feat(m3.7): edge middleware composing blocklist + rate limit
  • 4bfb1b3 feat(m3.7): wire security edge into proxy and start
  • 39aed38 feat(m4): Raft consensus for config replication
  • dadbd96 feat(m4): SWIM gossip membership via memberlist
  • cce3cf3 feat(m4): cluster Manager orchestrating gossip + raft
  • 78227f5 feat(m4): cluster node identity
  • 61f140d feat(m4): wire cluster into start and add cluster CLI
  • 3fdb0b2 feat(m5): OpenTelemetry trace provider
  • f6fbb13 feat(m5): Prometheus metrics registry
  • 9a354a5 feat(m5): SLO tracking with error budget
  • d064da5 feat(m5): localhost pprof profiler
  • df22179 feat(m5): observability HTTP middleware
  • 7e0c46e feat(m5): wire observability into proxy, API, and start
  • 798a533 feat(m6): WASM-backed hook implementation
  • 3576a0c feat(m6): plugin hook chain
  • 84b5032 feat(m6): plugin registry
  • 10dcdbb feat(m6): sandboxed WASM plugin runtime
  • 0e10eb3 feat(m6): vortex plugin CLI
  • 07da39f feat(m6): wire plugins into HTTP proxy
  • 35dddfb feat(m7.1): React + Vite + TS dashboard scaffold
  • b26b3a3 feat(m7.1): embed dashboard into binary, serve at /dashboard/
  • f47c48f feat(m7.2): Sidebar + TopBar layout components
  • c44e3a6 feat(m7.2): wire layout + React Router with stub pages
  • 1133cfe feat(m7.3): Overview page + UI components
  • d82838a feat(m7.3): wire Overview live data into app
  • d5d887e feat(m7.4): Routes page with table, filters, detail drawer
  • 7d9eb60 feat(m7.4): visual route builder stub
  • d185fb3 feat(m7.5): Metrics page with Prometheus parser
  • 08d0ba8 feat(m7.5): Security page
  • d59c3ae feat(m7.6): Audit Log page
  • 22c2e64 feat(m7.6): Secrets page
  • 7984998 feat(m7.7): Nodes page
  • 6151852 feat(m7.7): Plugins page
  • 3a3a9f4 feat(m7.8): Settings page
  • 45d1222 feat(m7.8): dashboard API endpoints
  • 3e4f5aa feat(m8.1): namespace model with quotas
  • 6543aff feat(m8.2): namespace registry
  • 9c9888f feat(m8.3): quota enforcer
  • 7092133 feat(m8.4): namespace isolation primitives
  • 2a4ff52 feat(m8.5): vortex namespace CLI
  • b4b6fbc feat(m8.6): wire namespaces into proxy and start
  • c38be94 feat(m8.7): dashboard Namespaces page
  • 776be21 feat(m8.7): namespace management API endpoints
  • c28dd28 feat(m9.1): performance benchmark harness
  • b9645da feat(m9.2): OS tuning recommendations
  • 05cf8ce feat(m9.3): horizontal autoscaler
  • ce2f37f feat(m9.4): vortex tune CLI
  • d67e4dc feat(m9.5): wire autoscaler + OS tuning into start
  • 8c051a9 feat(telegram): load from setup config, polling mode, bot commands, approval buttons, progress updates to phone
  • 8469403 feat(tui): /api/logs endpoint + log ring buffer
  • f63cd45 feat(tui): AI cost tracking in top bar
  • f8236aa feat(tui): API client
  • 7a89ed3 feat(tui): Lip Gloss styles + palette
  • 7ff5985 feat(tui): agent chat view (flagship)
  • 806cc6c feat(tui): live log viewer
  • d3864ed feat(tui): metrics view + logs/metrics tests
  • a20af50 feat(tui): nodes view + routes/nodes tests
  • 5f7b887 feat(tui): option-selection UI for clarifying questions (File 2/3)
  • 05608d6 feat(tui): overview view
  • 30ad311 feat(tui): root app model (sidebar/topbar/helpbar)
  • 85dbbbb feat(tui): routes view
  • eb6dd5b feat(tui): secrets view + security/secrets tests
  • 28674d7 feat(tui): security view
  • ae99676 feat(tui): setup wizard view
  • 4f6c0a3 feat(tui): vortex ui command + start --ui
  • a96a674 feat: add DeepSeek and Gemini to AI gateway
  • e02639f feat: vortex setup interactive AI provider wizard

Bug fixes

  • a11a359 fix(agent): avoid data race marshaling Memory mutex
  • a2559cb fix(agent): close wg.Add/wg.Wait race in runtime Submit/Stop
  • 4b306d1 fix(agent): compute project context at construction to avoid data race
  • 310500a fix(agent): increase AI timeout, smarter intent routing
  • 103cad2 fix(agent): make protected-path check OS-independent
  • c9f0e90 fix(agent): remove cwd restriction, approval is the only gate for write/run operations
  • 43bce0b fix(agent): show command output after run approval, detect missing compilers before build attempt
  • 28aed07 fix(agent): track session state for clarifying question flow, prevent build restart loop
  • 7f4a0ee fix(agent): wait for AI content before approval box, fix approval keypress race condition
  • ca76ee0 fix(dashboard): real API data on all pages
  • fa3fc1f fix(dashboard): verify API endpoints for dashboard data
  • 86b689e fix(forge): clarifying-question loop — treat answer as continuation while build is in flight
  • 8b45a7a fix(forge): deterministic language detection (c++ before c)
  • 06b5174 fix(forge): structured option selection for clarifying questions in TUI and Telegram (File 3/3)
  • aa328de fix(hardening): Runtime.Stop drains in-flight Submits
  • 3b2ad5c fix(hardening): SSRF protection for http_get tool
  • a6c3752 fix(hardening): agent integration tests send API key
  • 6cb7935 fix(hardening): block symlink escape from agent sandbox
  • ad848b7 fix(hardening): deterministic agent rate-limit test
  • 32bce0a fix(hardening): lint and race-test integration files
  • f4b8feb fix(hardening): missing plugin is warning not fatal error
  • 2a21c33 fix(hardening): parse Accept header correctly for SSE
  • 8759d52 fix(hardening): remove missing plugins from default config
  • 31e3148 fix(hardening): require API key for agent endpoints, rate limit + concurrency cap
  • 32e362c fix(hardening): restrict run_command to safe binaries+args
  • fa7db12 fix(hardening): runtime tests account for concurrency cap
  • 44924aa fix(m12.3): data race in terminal session lifecycle
  • 9894eea fix(m2-wiring): add HTTP/2-required AES_128_GCM cipher suites
  • b6d54ab fix(m2-wiring): cache binary in networking tests, increase integration timeout to 300s
  • f174819 fix(m2.2): stream response on single goroutine to avoid data race
  • af695d3 fix(m2.3): clone TLS config per listener to avoid data race
  • ccc00d8 fix(m3.4): poll after reload in TestPolicy_ReloadPolicy
  • f103b12 fix(reload): stop old data plane before starting new one
  • 384fd01 fix(telegram): run startup network calls in background so shutdown stays clean
  • 1c46d40 fix(tui): fix approval state machine, ensure file written after approval
  • 3da46be fix(tui): increase submit timeout to 180s, show thinking spinner while waiting for AI response
  • dc9f65a fix(tui): input-focused views capture all keypresses, disable 1-9 navigation while typing
  • 7155d01 fix(tui): load API key correctly for agent chat
  • 745258c fix(tui): show stdout lines before completion message after run approval
  • 170f158 fix(tui): stable session ID, max 2 clarifying questions — fixes loop on answer

Other

  • 8c4a8fa chore(agent): local FS + terminal access verification
  • 912b7d7 chore(m2.1): add proxy:bench task for M2.7 throughput decision
  • d2e2445 chore(tui): final TUI verification
  • c9ee761 test(agent): --cwd + working-dir display
  • 4beb200 test(agent): /api/agents/approve
  • 7a08269 test(agent): TUI approval UI + slash commands
  • 440c7b8 test(agent): coordinator local-tool execution + approval
  • 4162b88 test(agent): forge progress streaming
  • 4994ffb test(agent): git tool tests
  • 0f51db0 test(agent): local FS + terminal tools
  • d3263fa test(agent): memory save/load/resume tests
  • 71571b5 test(agent): search and find tool tests
  • d78121f test(agent): undo backup and restore tests
  • 3c47668 test(hardening): Runtime.Stop drains in-flight Submits
  • d99eaa7 test(hardening): SSRF protection for http_get
  • 4116d4c test(hardening): agent auth/rate-limit/concurrency + vortex_api deny
  • 9986248 test(hardening): run_command restrictions
  • e561ab8 test(hardening): symlink sandbox escape blocked
  • e82d2f8 test(m10): agent API unit + integration tests
  • c0bf1b0 test(m10.1): agent lifecycle tests
  • ac644da test(m10.2,m10.3): tool registry + sandbox tests
  • 7c15474 test(m10.4): message bus tests
  • 3e5c5a4 test(m10.5): coordinator tests
  • 83c6457 test(m10.6): runtime supervisor tests
  • fdfad2c test(m11.1): Telegram bot tests
  • b6f263d test(m11.2): WhatsApp bot tests
  • 0b586bc test(m11.3): Slack bot tests
  • 450e44e test(m11.5): AI gateway tests
  • 3c3e598 test(m11.6): messaging wiring + approval tests
  • 5d47ba2 test(m11.7): notification router tests
  • 32b2901 test(m12.1): code-server lifecycle tests
  • 2256f91 test(m12.3): browser terminal tests
  • e297a90 test(m12.4): DB studio tests
  • 40b7cca test(m12.5): Git panel tests
  • 032b634 test(m12.6): Studio integration + harness robustness
  • 003155b test(m13): Forge job manager + API + integration tests
  • 3608b5e test(m13.1): intent parser tests
  • c6e099a test(m13.3): dependency agent tests
  • 49b617b test(m13.4): code generation agent tests
  • ad8294a test(m13.5): build agent tests
  • 28ed04e test(m13.6): QA gate tests
  • 7c4ef62 test(m13.7): delivery agent tests
  • 058aa53 test(m13.8): orchestrator tests
  • 1085ebf test(m2-wiring): full-stack networking integration tests
  • 2dea495 test(m2-wiring): proxy manager unit tests
  • 4f1e633 test(m2.1): connection pool unit tests
  • 31e43b0 test(m2.1): listener unit tests
  • be7c5eb test(m2.1): tunnel unit tests and throughput benchmark
  • e6e6dd0 test(m2.1): weighted round-robin unit tests
  • dd5e4ec test(m2.2): HTTP handler proxy, retry, timeout, streaming
  • fb99aeb test(m2.2): HTTP proxy integration tests
  • 864f13f test(m2.2): HTTP server start, shutdown, stats
  • 6ceb483 test(m2.2): balancer unit tests
  • 40b4174 test(m2.2): round-tripper header injection and hop-by-hop tests
  • 7db96e5 test(m2.2): router priority matching tests
  • 206a601 test(m2.3): QUIC integration — H3 request, Alt-Svc, fallback
  • d38b610 test(m2.3): QUIC transport — validation and HTTP/3 request
  • 06341b5 test(m2.3): dual-stack QUIC+TCP, Alt-Svc, QUIC-unavailable
  • 80940ef test(m2.4): ACME manager unit tests (offline)
  • d8bb222 test(m2.4): TLS integration tests
  • ea779d7 test(m2.4): certificate store unit tests
  • f239ca0 test(m2.4): local CA unit tests including TLS handshake
  • 06784d1 test(m2.4): unified TLS manager tests
  • 2e1fd47 test(m2.5): UDP integration tests
  • 052d9ed test(m2.5): UDP listener unit tests
  • 9e264de test(m2.5): UDP rate limiter unit tests
  • a479528 test(m2.5): UDP session table unit tests
  • c9a6eae test(m2.6): WebSocket proxy and sticky session tests
  • 45cfc93 test(m2.6): gRPC proxy detection and forwarding tests
  • 8e95554 test(m2.6): gateway dispatch routing tests
  • 9df87b0 test(m2.6): gateway integration tests
  • 5d3add3 test(m3.1): mTLS handshake unit tests
  • f8673e4 test(m3.1): mTLS integration tests through real vortex
  • d8e5fc3 test(m3.1): mTLS wiring tests in listener and manager
  • ad197cc test(m3.1): node identity unit tests
  • cc07995 test(m3.1): rotation manager unit tests
  • f0515ec test(m3.2): secret CLI subcommand tests
  • eeb5875 test(m3.2): secret injection unit tests
  • c71887c test(m3.2): secret store integration tests
  • d9674d5 test(m3.2): secret store unit tests
  • 61d6a3d test(m3.3): AWS SSM adapter tests with mock HTTP server
  • a482553 test(m3.3): GCP Secret Manager adapter tests with mock HTTP server
  • 9025aeb test(m3.3): Vault adapter tests with mock HTTP server
  • 1b7f627 test(m3.3): adapter interface and local adapter tests
  • 63fda84 test(m3.4): OPA engine unit tests
  • 34e2e25 test(m3.4): OPA policy integration tests
  • 6d4eb76 test(m3.4): policy middleware tests
  • 0e93ef4 test(m3.4): policy wiring tests in proxy and manager
  • 4467023 test(m3.5): API key store unit tests
  • 88210b0 test(m3.5): OIDC provider unit tests with mock issuer
  • 1179332 test(m3.5): RBAC unit tests
  • 8feb979 test(m3.5): auth integration tests
  • 1ccacd8 test(m3.5): combined auth middleware tests
  • f19302f test(m3.5): management API auth tests
  • c8d5525 test(m3.6): audit CLI unit tests
  • 0794998 test(m3.6): audit export tests
  • 3656964 test(m3.6): audit log integration tests
  • 81cbb55 test(m3.6): audit log unit tests
  • d76703d test(m3.7): blocklist unit tests
  • 9ea1a64 test(m3.7): edge middleware tests
  • 8e1b143 test(m3.7): rate limiter unit tests
  • 362b62a test(m3.7): security edge proxy + integration tests
  • 96a7649 test(m4): cluster CLI unit tests
  • 2a02a14 test(m4): cluster identity unit tests
  • d1f72e7 test(m4): cluster integration tests
  • 489424f test(m4): cluster manager tests
  • 8aab45b test(m4): gossip membership tests
  • e157413 test(m4): raft consensus tests
  • f29f482 test(m5): SLO unit tests
  • 79f6d99 test(m5): metrics unit tests
  • 3e0dc69 test(m5): observability integration tests
  • 78a4186 test(m5): observability middleware tests
  • c57c95a test(m5): observability wiring tests
  • bb65e0d test(m5): profiler unit tests
  • b9f9655 test(m5): tracer unit tests
  • 99ddc5a test(m6): WASM hook tests
  • 601760e test(m6): WASM runtime unit tests
  • 942a407 test(m6): hook chain unit tests
  • 38d619f test(m6): plugin CLI unit tests
  • c12c09c test(m6): plugin hook tests in HTTP handler
  • 2075857 test(m6): plugin integration tests
  • 7c4721d test(m6): plugin registry tests
  • 85e2da8 test(m7.9): dashboard API endpoint unit tests
  • 25a2d4a test(m7.9): dashboard integration tests
  • 0e23188 test(m8.1): namespace unit tests
  • 1e25b78 test(m8.2): namespace registry tests
  • fe087b7 test(m8.3): quota enforcer tests
  • a504c29 test(m8.4): namespace isolation tests
  • 5f6783b test(m8.5): namespace CLI tests
  • 6d61936 test(m8.6): tenancy proxy + integration tests
  • 230039a test(m8.8): namespace API endpoint tests
  • 9ff2918 test(m9.1): benchmark harness tests
  • a587bff test(m9.2): tuner tests
  • 1973a9b test(m9.3): autoscaler tests
  • 713c5d6 test(m9.4): tune CLI tests
  • 891864c test(m9.5): perf integration tests
  • d9b194f test(telegram): setup config loading, polling, commands, approval flow tests
  • 2792559 test(tui): API client
  • 87d1bb5 test(tui): TUI integration tests
  • 9a47ace test(tui): agent chat view
  • d049865 test(tui): log buffer + /api/logs
  • afbd6e0 test(tui): overview view
  • 0c28eca test(tui): root app model
  • db41ead test(tui): setup wizard view
  • 2a49f40 test(tui): styles + helpers
  • 1b6188d test(tui): vortex ui command