Files
Meshtastic-Android/codecov.yml
James Rich 69883e9306 refactor: remove AIDL API and modernize radio architecture
Remove the deprecated AIDL/IPC API surface and perform deep architectural
modernization of the radio command pipeline, aligning with the meshtastic-sdk
AdminApiImpl pattern for future SDK migration.

Key changes:

1. AIDL Removal & Infrastructure Cleanup
   - Delete core:api module and all AIDL interfaces
   - Remove ServiceBroadcasts + CommonParcelable infrastructure
   - Remove core:api from CI workflow lint/publish steps

2. Model Modernization
   - Introduce NodeAddress sealed class with type-safe addressing
   - Remove deprecated DataPacket constants in favor of NodeAddress
   - Consolidate dual node maps into single source with getNodeById
   - Split large model files, deduplicate NodeEntity, flatten RadioController

3. Service Layer Refactoring (SDK-aligned)
   - Remove ServiceAction sealed class, use direct suspend calls
   - Convert CommandSender & MeshActionHandler to suspend APIs
   - Merge MeshActionHandler into DirectRadioControllerImpl
     (ViewModel → RadioController → CommandSender, no intermediate layer)
   - Build AdminMessage protos directly with typed protos end-to-end
   - Apply structured concurrency to NodeRequestActions/NodeManagementActions
   - Fix CancellationException handling throughout

Architecture (before → after):
  ViewModel → RadioController → Handler → CommandSender → PacketHandler
  ViewModel → RadioController → CommandSender → PacketHandler

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-28 06:37:32 -05:00

71 lines
1.6 KiB
YAML

# Codecov configuration for Meshtastic Android
# Ref: https://docs.codecov.com/docs/codecovyml-reference
codecov:
branch: main
coverage:
precision: 2
round: down
range: "70...100"
status:
project:
default:
target: auto # Coverage should not decrease from base branch
threshold: 1% # Allow 1% drop to reduce noise
patch:
default:
target: auto # New code should have coverage similar to project average
threshold: 1%
base: auto
comment:
layout: "reach,diff,flags,files"
behavior: default
require_changes: false # Post a comment even if coverage doesn't change
flags:
host-unit:
paths:
- .
carryforward: true
android-instrumented:
paths:
- .
carryforward: true
component_management:
default_rules:
statuses:
- type: project
target: auto
threshold: 1%
individual_components:
- component_id: core
name: Core
paths:
- core/**
- component_id: features
name: Features
paths:
- feature/**
- component_id: app
name: App
paths:
- androidApp/**
- component_id: desktop
name: Desktop
paths:
- desktopApp/**
ignore:
- "**/build/**"
- "**/*.pb.kt" # Generated Protobuf code
- "core/resources/**" # Centralized resources
- "**/test/**" # Unit tests
- "**/androidTest/**" # Instrumented tests
- "**/*Test.kt" # Test files
- "**/*Mock.kt" # Fakes/Mocks
- "**/*Fake.kt" # Fakes
- "**/testing/**" # Shared test utilities