Clear pre-A6 vendor import leaks from asg-core classes#3338
Conversation
Clear the last pre-A6 vendor import leaks from core-bound classes by introducing IMcuCommander and IBesTracePoller interfaces, injecting vendor implementations from ServiceInitializer, and routing DevApi setCameraFov through IHardwareManager with boolean success semantics. - CommandProcessor, UploadIncidentLogsCommandHandler hold IMcuCommander - BesTracePoller implements IBesTracePoller with IMcuCommander param - SettingsCommandHandler and AsgClientService use hardwareManager.setCameraFov - AsgClientServiceManager uses setBesOtaCommandHandler before initialize() - ServiceLifecycleManager no longer depends on getK900CommandHandler() Co-authored-by: Nicolo Micheletti <michelettinik@gmail.com>
📋 PR Review Helper📱 Mobile App Build⏳ Waiting for build... 🕶️ ASG Client Build✅ Ready to test! (commit 🔀 Test Locallygh pr checkout 3338 |
PR Agent Orchestrator State{
"cycle": 1,
"fixRound": 0,
"totalReviewerRuns": 1,
"consecutiveNoNewReviews": 0,
"openFindings": [],
"resolvedFindings": [],
"nitFindings": [
{
"id": "fb4a93",
"fingerprint": "asg_client/app/src/main/java/com/mentra/asg_client/io/bes/log/bestracepoller.java:88c885b772f5",
"source": "standards",
"severity": "nit",
"file": "asg_client/app/src/main/java/com/mentra/asg_client/io/bes/log/BesTracePoller.java",
"line": 30,
"message": "Field mK900CommandHandler is now typed IMcuCommander but keeps the concrete-class name; rename to mMcuCommander to match the abstraction (as CommandProcessor did).",
"status": "open",
"introducedCycle": 0,
"lastSeenCycle": 0
},
{
"id": "0cafc5",
"fingerprint": "asg_client/app/src/main/java/com/mentra/asg_client/service/core/handlers/settingscommandhandler.java:4d1b0f947069",
"source": "standards",
"severity": "nit",
"file": "asg_client/app/src/main/java/com/mentra/asg_client/service/core/handlers/SettingsCommandHandler.java",
"line": 473,
"message": "Log.w line exceeds the file's wrap width used elsewhere; minor formatting inconsistency.",
"status": "open",
"introducedCycle": 0,
"lastSeenCycle": 0
}
],
"phase": "discovery",
"status": "in_progress",
"lastPair": [
"bugbot",
"standards"
],
"stagnationFixRounds": 0,
"lastOpenCount": 0,
"fingerprintReopenCounts": {},
"mutedFingerprints": []
} |
|
bugbot run |
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🤖 PR Agent Review — cycle 1✅ No blocking findings · 0 blocking · 2 nits Claude — standards — ✅ approveCommander, recon complete. Full assessment of PR #3338 follows. Review — PR #3338 (Extract
|
Summary
Clears the last pre-A6 vendor import leaks from core-bound ASG classes ahead of the
:asg-core/:vendor-mentra-livemodule split (Phase A6).IMcuCommanderandIBesTracePollerinio/peripheral/.K900CommandHandlerandBesTracePollerimplement them.CommandProcessorandUploadIncidentLogsCommandHandlerhold interface types and receive implementations via constructor injection fromServiceInitializer.boolean setCameraFov(int, int)toIHardwareManager(with no-op inBaseHardwareManager,DevApicall inK900HardwareManager).AsgClientServiceandSettingsCommandHandlerroute throughhardwareManagerinstead of callingDevApidirectly. Return value preserves existing behavior: HAL restart andhardware_applied: trueonly when FOV is actually applied.ServiceInitializerconstructsK900CommandHandler+BesTracePollerand passes them toCommandProcessor.AsgClientServiceManagergainssetBesOtaCommandHandler()called before no-arginitialize().ServiceLifecycleManagerno longer callsgetK900CommandHandler().Blocker files cleared
CommandProcessorK900CommandHandler,BesTracePollerIMcuCommander,IBesTracePollerUploadIncidentLogsCommandHandlerK900CommandHandlerIMcuCommanderSettingsCommandHandlerDevApi.setCameraFovIHardwareManager.setCameraFovAsgClientServiceDevApi.setCameraFovIHardwareManager.setCameraFovTest evidence
Acceptance grep over core directories: the four blocker files are clean. Remaining hits are expected (
IBesOtaRegistryregex false positives;K900CommandHandlerimport inServiceInitializeras the designated composition root).Out of scope
No file moves, no
OtaHelpersplit, no protocol logic changes.