Repository navigation
Phase 1: Establish WestCurrent product foundation - #1
Merged
Merged
Conversation
…r-owned targets Implement real adapter reconnection with in-memory target/factory retention and bounded non-overlapping attempts. Coordinate light commands by LightTargetId. Replace shared ConnectionTarget sealed hierarchy with AdapterConnectionTarget owned by adapters. Make Temperature unit-explicit with F/C safety ranges. Stop persisting system codes and passwords.
…docs Remove remember-system-code UI. Display explicit F/C temperatures and session unit confirmation. Add Phase12MergeReadinessTest coverage for reconnect, light targets, connection ownership, units, and prefs. Add android-ci workflow and document Phase 1.2 corrections.
…credential redaction Bind SiteSession to viewModelScope and close on ViewModel clear. Use ReconnectPolicy production multi-second backoff with explicit post-exhaustion retry. Preserve confirmed temperature unit across reconnect in session memory. Redact passwords from connection target toString. Strengthen reconnect and remote-persistence tests; add simulator walkthrough and Phase 1.3 docs.
Remove runBlocking from SiteSession.close. Synchronously invalidate session state and schedule bounded async adapter cleanup. Unify automatic reconnect and explicit retry under one job. Bump connection generation on disconnect/close/new target and refuse stale installs. Add Phase14 race tests and docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Product foundation summary
WestCurrent by 8 West Ventures, LLC — Phase 1 establishes a vendor-neutral Android pool-control foundation with ScreenLogic + in-process simulator, honest command lifecycle, SafetyPolicy, and SiteSession as the sole production path.
Head commit:
c4abb2de7648912282dca6b322cecaa86da1c4c6Branch:
phase-1-westcurrent-foundation→mainDo not merge until independent human review.
Architecture
UI → PoolViewModel (
viewModelScope) → SiteSession → SafetyPolicy + CommandOrchestrator → PoolSystemAdapter (ScreenLogic / Simulator)Phase 1.1–1.3 (summary)
Vendor-neutral domain, capabilities, SentUnverified lights, real reconnect, light targets, adapter-owned connection targets, unit-aware temperatures, no system-code persistence, CI, ViewModel lifecycle, production multi-second reconnect policy, explicit retry, credential redaction.
Phase 1.4: Teardown and Retry Race Correction
Non-blocking teardown
runBlockingfromSiteSession.close().close()synchronously: marks closed, bumps connection generation, cancels poll + reconnect/retry, clears target/factory/unit/receipts, detaches adapter, publishes Disconnected.adapter.disconnect()via per-sessionAdapterCleanupScheduler(IO, 5s timeout) — cannot reinstall adapters.ViewModel.onCleared()without main-thread network waits.Connection-generation + owned reconnect/retry
retryConnection()share onereconnectJob(single-flight, cancelable).Race tests
Local verification
75 unit tests, 0 failures
Live hardware
No live pool hardware was controlled.
Commits after
f5306bfc4abb2dPhase 1.4: non-blocking close and generation-guarded reconnect/retryExplicit non-merge
PR #1 remains open for independent review. Not merged by this task.