Repository navigation
v0.8.2
test(ks-cli): define remote e2e harness contract
feat(ks-cli): add remote e2e harness
test(ks-cli): define status and doctor contract
feat(ks-cli): add status and doctor commands
test(ks-cli): define docker compatibility policy
feat(ks-cli): make docker proxy compatible by default
test(ks-cli): define shared download command contract
feat(ks-cli): expose shared download command
test(ks-cli): define service lifecycle contract
feat(ks-cli): simplify service lifecycle
test(ks-cli): define npm and go wrapper contract
feat(ks-cli): add npm and go wrappers
test(ks-cli): define ecosystem wrapper contract
feat(ks-cli): add ecosystem command wrappers
test(ks-cli): define mise acceleration readiness
fix(ks-cli): prepare accelerated tool gateways
test(docs): define mise acceleration guide contract
docs(ks-cli): explain mise acceleration model
test(ks-cli): define platform-aware node rewrites
fix(ks-cli): preserve mise node platform selection
test(ks-cli): require mise musl routing version
feat(ks-cli): enforce mise node routing baseline
test(ks-cli): define mise remote settings smoke
test(ks-cli): verify mise acceleration settings remotely
test(ks-cli): treat unset node mirror as default
test(ks-cli): keep mise node mirror unset
test(download-gateway): require upstream 404 propagation
fix(download-gateway): preserve upstream HTTP errors
test(download-gateway): bypass planning for signatures
fix(download-gateway): pass through signature responses
test(docs): require implemented mise node design
docs(ks-cli): record platform-aware mise acceleration
test(ks-cli): define machine-readable command catalog
feat(ks-cli): publish command interaction contract
test(kspeeder): define service capability contract
feat(kspeeder): publish service capabilities
test(ks-cli): require service capability negotiation
feat(ks-cli): negotiate service capabilities
test(ks-cli): define accelerated tool explanations
feat(ks-cli): explain accelerated tool execution
test(ks-cli): define per-tool doctor diagnostics
test(ks-cli): expose tool doctor in help
feat(ks-cli): diagnose accelerated tools
test(ks-cli): define unified tool execution plans
refactor(ks-cli): unify accelerated tool policy
test(ks-cli): define safe service upgrades
test(ks-cli): require fresh image for docker upgrades
feat(ks-cli): upgrade installed service safely
test(ks-cli): define compatibility command convergence
test(docs): require ks-cli interaction contracts
feat(ks-cli): converge compatibility commands
docs(ks-cli): document interaction architecture
test(ks-cli): require complete post-upgrade capabilities
fix(ks-cli): verify complete service capabilities
test(ks-cli): expose doctor execution plan
fix(ks-cli): align doctor with execution plans
test(ks-cli): bind health to installed service config
fix(ks-cli): bind health to installed deployment
refactor(ks-cli): type execution contracts
docs(ks-cli): move domain context under docs
test(docs): require release interaction guarantees
docs(ks-cli): clarify release interaction guarantees
test(ks-cli): keep local diagnostics service independent
fix(ks-cli): keep service discovery authoritative
test(docs): require local mise diagnostics contract
docs(ks-cli): define local mise diagnostics
feat(plus): add renewal, promo code and manual membership refresh (#70)
-
test(plus): specify manual membership refresh
-
test(plus): initialize refresh manager fixture
-
feat(plus): add manual renewal and membership refresh
-
refactor(plus): trim manual refresh state
-
docs(plus): document minimal refresh design
-
test(plus): reproduce stale refresh across session changes
Before the fix: 7 frontend assertions fail and all 9 backend HTTP 200/401/403 x logout/account-switch/same-token-relogin cases fail. Delayed success restores stale memory/disk credentials; delayed authorization failures clear replacement sessions. HTTP barriers keep ordering deterministic.
- fix(plus): discard refresh results from obsolete sessions
Bind manual refresh to the initiating token and a process-local session revision. Atomically check identity and update/persist or revoke the cache; discard stale 200/401/403 results with HTTP 409. Apply the same guard in Pinia, including same-token relogins. No polling, TTL, retry, registry or proxy changes.
Verified: 22 frontend tests, typecheck, web/desktop builds, targeted ESLint, ks_ctl/cmd/multi/docker_proxy package tests, ks_ctl race x20 and go vet. Expanded cmd/multi race finds an independent Manager.Start/Stop race also reproduced with pre-fix f72980c sources via Go overlay; intentionally left outside this fix.
- test(plus): specify promo code activation link
Verify anonymous/Free/Plus visibility, safe URL and menu order, and no membership or node requests on link clicks. Before implementation: 5 expected failures for missing promo-code link; 2 existing tests pass.
- feat(plus): add promo code activation menu link
test(docs): require OpenWrt CLI integration contract
docs(ks-cli): define OpenWrt integration contract
test(ks-cli): define OpenWrt runtime behavior
feat(ks-cli): support OpenWrt managed services
test(release): require public ks-cli assets
feat(release): publish public ks-cli assets
test(release): define ks-cli OpenWrt binary bundle
test(release): require versioned ks-cli bundle publication
feat(release): publish versioned ks-cli binary bundle
test(ks-cli): require authoritative OpenWrt UCI errors
fix(ks-cli): preserve authoritative OpenWrt UCI failures
test(ks-cli): require structured OpenWrt service behavior
fix(ks-cli): structure OpenWrt service state and errors
test(release): require immutable published assets
fix(release): keep tagged assets immutable
test(docs): enforce ks-cli binary release boundary
docs(ks-cli): define upstream OpenWrt binary boundary
test(ci): require ks-cli bundle in release pipelines
fix(ci): generate ks-cli bundle before release manifest
Merge pull request #71 from kspeeder/feat/ks-cli-openwrt-release
feat(ks-cli): support OpenWrt runtime and release assets