Skip to content

Unify controller transports and preserve both histories for the future repository merger #702

Open

Description

@atomicdeploy

Goal and boundaries

Coordinate atomicdeploy/PakarController and atomicdeploy/PCController toward one repository and one production firmware source tree, without losing either unrelated Git history, useful implementation, tests, licenses, settings or host work. Pealayer remains a coordinated consumer where its contract is affected. Do not perform an unrelated-history merge merely to close this issue.

This pass

  • Inventory every implemented framing, carrier, envelope, request/result/event contract, transfer path, client and build profile; distinguish source, fixture, build, runtime and hardware proof.
  • Preserve USB/UART/CDC recovery and specialized bootloader protocols. COBS is framing, not a competing USB transport. Existing raw opcode namespaces collide (Pakar0x11 audio versus PC0x11 PWM); never remove their admission boundary blindly.
  • Share malformed/golden/maximum-size fixtures and harden parsers without changing valid wire bytes. Keep CRC corruption detection separate from authentication.
  • Measure feature/resource deltas and expose real build-selected limits/capabilities; slim builds must explicitly reject unavailable operations, never silently acknowledge no-ops.

Next pass: shared semantics and parity

  • Select one source owner for portable framing, typed operation registry, identity/boot/session fencing, correlation, cancellation, deadlines, errors and events. Reuse superior existing implementations rather than creating another protocol.
  • Use additive optional fields/capability discovery, stable numeric IDs and bounded unknown-field handling. Do not use exact release equality, schema generations, version-selected adapters or silently reinterpret ambiguous old opcodes.
  • Define and test stream/datagram differences: reliable control/maintenance versus lossy frame streaming, fragmentation/reassembly, replay protection, leases, subscriptions, backpressure and state resynchronization. Never retry an outcome-unknown mutation.
  • Complete advertised API/command/event/firmware/file capabilities consistently across enabled USB/UART/OTG, TCP/HTTP/WebSocket, MQTT, UDP and BLE adapters; explicitly advertise exclusions, authentication and real size limits.

Following pass: MCU portability and merger

Acceptance

No partial transport is advertised as complete. Both repositories benefit before the eventual merger; all useful donor behavior is retained or explicitly tracked. Clients discover capabilities and limits, optional additions remain tolerant, and unsupported safety-critical semantics fail closed. Hardware and deployment require their own authorization and evidence.

Shared contract/core implementation owners and carrier completion

The current requirement is one shared semantic command/event contract and portable core, with complete enabled adapters, not a single oversized wire envelope.

Evidence already available, not full completion

PCController#704 is merged at 8b0ea74: canonical native/Pakar allocation ownership, generated consumer views, published-ID stability and strict namespace checks. Pakar#43 and Pealayer#223 are related consumer checkpoints, not proof of complete payload, carrier, client or deployment parity. Earlier strict COBS/fragment fixtures also remain useful. Do not tick the full semantic/core/adapter requirements solely from those tests.

The future unrelated-history/source-tree merger, full MCU HAL work, preserved settings/rollback and real-device/LAN/soak gates above remain open. This issue update does not flash, reset, actuate or reconfigure production.

Activity

  1. atomicdeploy commented on Oct 30, 2026

    @atomicdeploy
    OwnerAuthor

    Cross-repository owner: atomicdeploy/PakarController#41 . Existing MCU/firmware issues103,227,18 and contract/IPC issues125,375 remain the implementation owners; this epic coordinates the eventual unrelated-history merger and exhaustive file reconciliation rather than duplicating or closing them.

  2. atomicdeploy commented on Oct 30, 2026

    @atomicdeploy
    OwnerAuthor

    First checkpoint f2b1b3f is published in PR703: strict bounded C++/Go COBS, UDP fragment admission symmetry, shared fixtures and a read-only same-source MCU inventory with explicit adapter guards. Existing CMake framing, stable-path Go native/UDP and two MCU inventory tests pass. This is not full carrier parity or a new STM32/ESP hardware port. Before this PR, the refreshed repository had ten open PRs, including failing host/source checks on699, unstable692, blocked688 and active drafts;22 stashes and both clean detached worktrees were preserved. Full merger/clean-default-branch acceptance remains open; no blind merges or settings/device updates.

  3. atomicdeploy commented on Oct 30, 2026

    @atomicdeploy
    OwnerAuthor

    Paired first slice is merged: PC703 -> 3d2d573; Pakar42 -> e2913e2. PC native C++/Go UDP, MCU inventory and all 23 final PR checks pass; primary main is clean. Pakar complete local quality passes, but its final remote/post-merge CI is still pending and must not be called all-green. The shared fixture SHA256 is 81683deafa749b231e483d2b75e4c45cae2a3262cab014ad0a20c74a82b31694. Ready PR689/690/693 were diff/conversation reviewed, then normally updated against main (no force or admin bypass); their new heads require fresh CI and sequential integration. Remaining draft/failed PRs and archived divergent tips are not certified merged or superseded. All 22 existing stashes and owner worktrees are preserved. Next steps remain the shared living operation/identity/event contract and carrier parity, then real MCU HAL ports and a separately reviewed unrelated-history/file-by-file source consolidation. No new STM32/ESP hardware support or whole-protocol parity is claimed.

  4. atomicdeploy commented on Oct 30, 2026

    @atomicdeploy
    OwnerAuthor

    Canonical opcode ownership and strict namespace admission are implemented in PR704 (6400813), with consumer PRs atomicdeploy/PakarController#43 and ToghrolTP/pealayer#223. Published opcode bytes remain unchanged. Native A5/1 and Pakar A5/0 are fixed namespace discriminators, not versions; actual MCU and host decoders reject all255 foreign markers before dispatch. Generated multi-language bindings, immutable source pins, published-allocation fixtures and protected-base CI prevent independent drift. PC build tooling96, generator5, actual C++ UART/trace fixtures and native/UDP Go conformance pass locally. AVR firmware and five-target virtual-board CI already pass; remaining exact-head jobs are still running. Carrier/service parity, deployment, physical acceptance and unrelated-history merge remain separate open work; no boards or installed apps changed.

  5. atomicdeploy commented on Oct 30, 2026

    @atomicdeploy
    OwnerAuthor

    PR704 passed its exact-head checks and was merged normally (not auto-merged while pending) as 8b0ea74. The immutable consumer source pin 3b8fabe remains preserved in the merge history. Pakar PR43 and Pealayer PR223 are ready for review; their remaining CI is still independent. All three primary working trees are clean; no deployment performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions