Releases: dataplanelabs/gcplane
v1.2.0
Changelog
Features
- 5aba8c3 feat(tui): live trace refresh across all tabs
- 041b4d4 feat(tui): make logs panel selectable with copy support
- 8881d18 feat(tui): replace Events/Trace tabs with LLM Traces tab
- e81c630 feat: add SHA-256 hash tracking for write-only fields (issue #3)
Bug Fixes
- 1366b28 fix(reconciler): skip write-only hash comparison when observed hash is empty
- fcb7638 fix(tui): Ctrl+R and r refresh only the active tab
- 87923fa fix(tui): Esc drills out one level at a time on Traces tab
- da4a8c9 fix(tui): change Ctrl+R from apply to refresh
- 72d51f7 fix(tui): fix Traces tab keybindings and tree rendering
- aa03d43 fix(tui): force logs redraw after / search and c clear filter
- 3ff17dd fix(tui): poll traces every 3s for live updates without WS dependency
- b15f7b4 fix(tui): replace WriteString with fmt.Fprintf to fix staticcheck QF1012
- aa29d10 fix(tui): update help text to reflect current keybindings
Refactoring
v1.1.5
What's New
Fix: contextFiles from manifest now applied to GoClaw (#2)
Agent contextFiles (IDENTITY.md, SOUL.md, etc.) defined in manifests were silently ignored by GoClaw's agent create/update endpoints. Context files are stored in a separate agent_context_files DB table and must be managed via the merge import API.
Fix: After creating or updating an agent with contextFiles in the spec, gcplane now builds a tar.gz archive and POSTs it to POST /v1/agents/{id}/import?include=context_files to upsert each file.
To sync existing agents: Run gcplane apply --force to re-push all resources including context files.
Files changed
internal/provider/goclaw/context_files.go(new) — tar.gz archive builder + import API callinternal/provider/goclaw/agents.go— callssyncContextFilesafter create/update- 5 new unit tests covering archive building, import endpoint, edge cases
v1.1.4
What's New
Post-reconcile provider key verification (#1)
After each reconciliation cycle, gcplane now verifies provider API keys by calling POST /v1/providers/{id}/verify. This prevents stale or unresolved ${ENV_VAR} literals from silently causing 401 failures.
On auth failure (401/403):
- Logs
level=ERRORwith provider name - Increments
gcplane_provider_verify_errors_totalPrometheus counter - Sends webhook alert (Slack, Discord, Google Chat, Teams, Telegram)
Forward-compatible: Gracefully skips when the verify endpoint is unavailable (404), so existing GoClaw versions work without changes.
Files changed
internal/provider/goclaw/providers.go—VerifyProvider()methodinternal/controller/verify.go— verification logic withProviderVerifierinterfaceinternal/controller/controller.go— wired into reconcile loopinternal/controller/metrics.go—ProviderVerifyErrorscounterinternal/server/handlers.go— Prometheus metric expositioninternal/notifier/— verify failure alert formats for all 5 webhook services
v1.1.3
What's Changed
Bug Fixes
- BuiltinToolConfig/SkillConfig observe — Fix observe returning global state when no tenant config exists, preventing silent noop when desired matches global default
- TUI — Wire trace callback, fix confirm modal nav stack, sort trace attributes
Features
- Provider chain support — BuiltinToolConfig now supports
settings.providersfor ordered fallback model chains (write-only, applied on every sync) - TUI extensibility — View interface, ViewRegistry, EventBus, TraceView with scrollable logs, Catppuccin Mocha palette
- Project vision — Added vision document with pillars and roadmap
Tests
- Added unit tests for
builtin_tool_configsandskill_configs(12 new tests)
Docs
- Document TUI trace and view extensibility features
- Updated system architecture docs
Full Changelog: v1.1.2...v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.0
Changelog
Features
- 835906e feat(provider/goclaw): add agent_key resolution in cron job create/update
- fac140e feat: add SystemConfig write-only fields, cron job camelCase stripping, example updates
- fccb2ee feat: sync cron job schema with upstream GoClaw — fix WS RPC key format
- 871bfeb feat: sync with upstream GoClaw — remove Tool/TTSConfig, add SystemConfig
Bug Fixes
- adf2617 fix(ci): upgrade golangci-lint-action to v7, bump Go to 1.25.8
- 55ec7b6 fix: harden safety, security, and context propagation across provider layer
Others
- d4aabc8 ci: refactor e2e workflow, update test scripts
v0.7.2
Fixes
Channel Credentials
- Bot tokens now use the
credentialsobject instead of top-levelbotTokenfield- Telegram:
credentials.token - Slack:
credentials.botToken+credentials.appToken
- Telegram:
- Channel update path now resolves
agentKey → agent_id(was only in create)
Multi-Tenant Isolation
- Tenant slug → UUID resolution with lazy caching (
resolveTenantUUID) tenant_idUUID injected into create bodies for tenant-scoped operationsmatchesTenantfilter on all observe and listAll functions — prevents cross-tenant resource matching- Supports APIs that include/exclude
tenant_idin responses
Write-Only Fields
systemPromptadded to agent write-only fields (GoClaw doesn't persist via agent API)- Channel write-only fields updated:
botToken→credentials
Examples
- New MT channel example (
examples/local-dev-mt/acme-corp/channels.yaml) - All example manifests updated to use
credentialsfor channel tokens
Breaking Changes
- Channel manifests must use
credentialsinstead ofbotToken— see updated examples
v0.7.1
Changelog
- 2cf5f12 feat: TUI actions — apply, delete, editor (P1)
- 28b0eae feat: TUI attach mode + multi-tenant switching
- e365325 feat: add --force flag for apply and plan commands
- aedf5e7 feat: add OpenAI provider and TTS config to local-dev
- 6ec09be feat: add mise.toml task runner + scripts/ directory
- 5c9931b feat: k9s-style TUI for resource monitoring (gcplane top)
- cd9a7b8 feat: modular local-dev manifests, mise migration, agent config updates