rcourtman
55e058d1e6
Converge API token scope pills on shared selectable primitive
2026-06-13 21:52:18 +01:00
rcourtman
8c1c7dfda4
Converge settings spinners on LoadingSpinner
2026-06-13 18:18:51 +01:00
rcourtman
4e7d7ddb4f
Converge connection editor notices on CalloutCard
2026-06-13 17:36:27 +01:00
rcourtman
cb53fd6b60
Converge settings external links on shared primitives
2026-06-13 17:16:11 +01:00
rcourtman
09ed857869
Converge UI primitives and readiness guards
2026-06-13 16:31:52 +01:00
rcourtman
11e0347991
Add governed Proxmox guest lifecycle actions
2026-06-13 14:11:32 +01:00
rcourtman
8b3ed322e7
Add Docker container lifecycle controls
...
Refs #1034
2026-06-12 21:41:06 +01:00
rcourtman
131cc2702b
Canonicalize organization metadata badges
2026-06-12 20:45:27 +01:00
rcourtman
11464b4df8
Clarify agent upgrade and notification docs
2026-06-12 19:26:26 +01:00
rcourtman
841100caa7
Clarify Proxmox LXC Docker install path
2026-06-12 09:57:58 +01:00
rcourtman
f9b10316b8
fix(licensing): surface unreadable persisted v5 licenses and retry failed startup exchanges
...
Two silent-downgrade paths in the v5→v6 migration are now visible and
self-healing:
License load/decrypt failure (was: one log line, no UI state): when
license.enc exists but cannot be read, getTenantComponents now persists
a terminal commercial_migration state with reason
persisted_license_unreadable, so the licence panel and global banner
tell the customer to re-enter their v5 key instead of leaving them to
discover missing Pro features.
Failed startup exchange (was: once per process, Community until manual
restart): exchange failures classified as pending — license-server
blips, DNS failures, rate limits — now schedule a background retry loop
with backoff (30s → 30m cap) that re-attempts the exchange until it
succeeds, hits a terminal classification, or the org's service activates
through another path. The loop stops cleanly on manual activation and
StopAllBackgroundLoops.
Registers the new files in the subsystem registry (cloud-paid
commercial-migration verification policy + shared ownership) and pins
both behaviors in the cloud-paid and api-contracts contracts.
2026-06-11 08:44:35 +01:00
rcourtman
6340cd36f2
Dedupe internal/api handler families behind shared flows and generics
...
Clears the sixteen dupl pair groups in internal/api plus the pkg/pulsecli
pair:
- router.go: privileged settings endpoints share the
serveSetupTokenOrSettingsWrite gate; patrol findings convert via one
unifiedFindingFromAI; the five infrastructure-summary chart loops share
collectGuestChartData / fillChartSeriesFromBatch; the VM/LXC workloads
summary loops share appendGuestWorkloadSummaries.
- deploy_handlers.go: preflight and job status/SSE handlers share
handleDeployJobStatus / handleDeployJobEvents.
- recovery_handlers.go: points series/facets share
parseRecoveryListPointsOptions.
- truenas_handlers.go / vmware_handlers.go / router_routes_registration.go:
the connection update flow (locate, decode-with-fallback, normalize,
preserve masked secrets, validate, save, redact) moves to the new
platform_connection_shared.go (updatePlatformConnection +
decodeOptionalInstanceRequest + the admin-gated item-route builder);
per-platform wrappers carry nolint'd declarative wiring only.
- docker_metadata.go / guest_metadata.go: GET/PUT payload semantics move
to metadata_handlers_shared.go; the zero-record-instead-of-404 contract
is pinned by TestContract_MetadataGetPayloadsUseZeroRecordsInsteadOf404.
- kubernetes_agents.go / docker_agents.go: lifecycle PUTs share
per-handler action helpers.
- config_node_handlers.go: PBS/PMG probes share
testProxmoxPlatformConnection.
- cloud_handoff_handlers.go / purchase_return_redemptions.go: secrets
sqlite stores open through openHardenedSecretsDB so permission
hardening stays single-sourced.
- ai_handlers.go / chat_service_adapter.go: the GetMessages adapters are
deliberate contract mirrors — suppressed with nolint and enforced by
TestOrchestratorAndChatAdaptersMapTheSameMessageFields.
- pkg/pulsecli/actions.go: action subcommands seed env defaults via
actionAPIDefaults (tested); the audit/events cobra registration pair is
nolint'd parallel wiring.
- .golangci.yml: exclude gitignored tmp/ from ./... typechecking.
- subsystem_lookup_test.py: refresh the pinned api-contracts.md line
numbers shifted by the contract additions.
golangci-lint run ./... is now fully green. Full internal/api and
pkg/pulsecli test suites pass.
2026-06-10 10:52:05 +01:00
rcourtman
d89257f9d8
Add Assistant tool chain fixture
...
Add a paced local Assistant fixture that exercises consecutive tool start, progress, completion, and replacement states without opening a provider request.
2026-06-08 07:13:37 +01:00
rcourtman
7cf9b81210
Show Assistant prompt send status
...
Seed Assistant turns with a local prompt-send status, promote it when the chat stream opens, and keep backend workflow activity as the durable stream evidence.
2026-06-08 06:53:51 +01:00
rcourtman
13b2c33dfd
Align Assistant route wait status
...
Use neutral assistant wait status while keeping selected model route metadata visible. Make transient retry copy explicit that Pulse retries the selected route rather than switching providers.
2026-06-08 06:37:47 +01:00
rcourtman
17ef976140
Expose Assistant fixture commands
2026-06-08 00:24:25 +01:00
rcourtman
648e24182d
Add Assistant live wait heartbeat
2026-06-07 17:21:47 +01:00
rcourtman
84ec1a7214
Align Assistant provider retry with OpenCode
2026-06-07 17:04:42 +01:00
rcourtman
50d9fcd021
Add Assistant session compaction
2026-06-07 10:55:13 +01:00
rcourtman
1fc36a790b
Show Assistant context tools as activity rows
2026-06-07 10:02:29 +01:00
rcourtman
fc24ac0aee
Add Assistant queue-drain fixture
2026-06-07 09:12:46 +01:00
rcourtman
59391aebf7
Keep live Assistant workflow activity visible
...
Preserve workflow activity rows across active stream content and tool boundaries, and type the generated chat SSE route metadata that drives model activity rows.
2026-06-07 02:41:57 +01:00
rcourtman
2291924cb6
Show Assistant provider retry progress
2026-06-06 15:55:59 +01:00
rcourtman
6bbbf185bb
Make workload discovery repair known service results
2026-06-05 09:21:53 +01:00
rcourtman
3c24304826
Update subsystem lookup line expectation
2026-06-04 21:58:35 +01:00
rcourtman
d305d602a6
Add resource-context Assistant eval
2026-06-04 18:44:47 +01:00
rcourtman
3f8525a7c2
Implement resource-aware Assistant context
2026-06-04 16:36:04 +01:00
rcourtman
bd6f77e093
Prepare v6.0.0 release candidate
...
Tighten v5-to-v6 upgrade safety, release installability, provider MSP mode handling, AI cost accounting, metrics flushing, and frontend guardrails for the v6.0.0 GA candidate.
2026-06-04 14:07:14 +01:00
rcourtman
0d0eb4bf11
Stabilize v6 release dry-run backend gate
2026-06-03 18:12:42 +01:00
rcourtman
d5f144f8f1
Prepare v6.0.0 stable release
2026-06-03 17:31:11 +01:00
rcourtman
4ef6caaa9d
Finalize v6 GA release packet
2026-06-03 17:15:00 +01:00
rcourtman
17e854e7b6
Use agent update target for stale notices
2026-06-03 14:42:43 +01:00
rcourtman
b50b99c7c6
Route stale agents to scoped update commands
2026-06-03 14:11:33 +01:00
rcourtman
eab73d2453
Fix PBS backup identity matching
2026-06-03 11:43:20 +01:00
rcourtman
65cdcdd457
Add v5 agent self-update runtime proof
...
Extend the unified-agent RC rehearsal with an optional local v5-to-v6 process-swap check.
Record the v5.1.34 to v6.0.0-rc.6 proof result for the upgrade-continuity gate.
2026-06-03 09:39:25 +01:00
rcourtman
c7e50d5602
Harden provider-hosted MSP isolation
...
Broker provider control-plane Docker access through a socket proxy, remove broad host mounts, align audit and rate-limit proxy trust, harden tenant runtime containers, restrict workspace report logo paths, and update provider deploy guardrails.
2026-06-02 21:10:13 +01:00
rcourtman
d6964832a0
Add entitlement-gated report branding
2026-06-02 18:11:25 +01:00
rcourtman
4c31fa88f3
Add provider MSP install proof
2026-06-02 14:50:36 +01:00
rcourtman
e5a7300aff
Add provider MSP workspace recovery
2026-06-02 14:28:16 +01:00
rcourtman
c9f84c5192
Add provider MSP backup command
2026-06-02 14:03:19 +01:00
rcourtman
f128c0b8cd
Add provider MSP status command
2026-06-02 13:33:27 +01:00
rcourtman
e99ca62c81
Add provider MSP preflight readiness checks
2026-06-02 13:02:13 +01:00
rcourtman
3f20c85e86
Add provider MSP proof command
...
Adds a provider-hosted MSP proof command that exercises provider bootstrap, workspace creation, hosted tenant install-token generation, handoff exchange, setup-facts visibility, and cross-tenant token isolation.
2026-06-02 12:45:48 +01:00
rcourtman
5134e36c28
Add provider-hosted MSP install path
2026-06-02 12:11:35 +01:00
rcourtman
57486cee88
Harden MSP onboarding proof gaps
2026-06-02 10:15:35 +01:00
rcourtman
fe06747418
Improve MSP onboarding guidance
2026-06-02 08:55:40 +01:00
rcourtman
d425f02661
Improve MSP workspace setup onboarding
2026-06-02 00:27:19 +01:00
rcourtman
dfb9bdcd18
Make MSP workspace setup flow first-class
2026-06-01 23:49:30 +01:00
rcourtman
00f6ee9daa
Make MSP workspace onboarding actionable
2026-06-01 22:41:10 +01:00
rcourtman
184f8244da
Record pre-GA public checkout posture
2026-06-01 18:47:15 +01:00