Skip to content

[modules→tinybus] bug: a failed TinyComputer reinitialize leaves the old config fingerprint recorded #14

Closed

Description

@senamakel

Parent: tinyhumansai#8056

Context

modules/desktop.rs:53-72 compares the config fingerprint with last_config(), then calls reinitialize_module. On error it returns through ? and leaves previous at the old fingerprint, even though the module may have half-applied the new config. If the user then reverts to the old config, the fingerprints match, the reinitialize is skipped, and the module keeps serving the half-applied config. search/proxy.rs:100 does this correctly: it clears held before reinitializing.

Scope

  • Set the recorded fingerprint to None before calling reinitialize_module, and record the new one only after it succeeds.
  • Regression test in desktop_tests.rs, with a failing reinitialize stub.

Acceptance criteria

  • A failed reinitialize followed by a call with the previous config reinitializes again.
  • Regression test: fail on config B, then call with config A, and the reinitialize is attempted.

Verification

pnpm debug rust modules::desktop

Agent brief

Depends on: none · Blocks: #33 (ReconfigurableModule adoption carries the same rule)

Files to consider: modules/desktop.rs:36-76, modules/search/proxy.rs:90-120 (the correct shape), modules/desktop_tests.rs

Workflow: implementing-an-epic step · Subagents: systematic-debugger, code-reviewer

Activity

  1. added
    bugSomething isn't working
    subtaskSubtask of a larger tracked effort.
    rust-coreCore Rust runtime in src/: CLI, core_server, shared infrastructure.
    priority: p2Soon. Real but survivable — a rough edge, a gap, a thing that will bite later.
    on Oct 16, 2026
  2. senamakel commented on Oct 16, 2026

    @senamakel
    OwnerAuthor

    Integrated into epic/8056-modules-wiring in 32f24a02eb . The regression failed before the fix (A/B instead of A/B/A) and all 5 desktop tests pass afterward. Package check, formatting, layout, and independent source review pass. Strict Clippy still reports 40 pre-existing findings in unchanged files. Intermediate fork PR omitted under the canonical-only PR rule and upstream branch-creation restriction; final PRs will target canonical upstream repositories.

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

    bugSomething isn't workingpriority: p2Soon. Real but survivable — a rough edge, a gap, a thing that will bite later.rust-coreCore Rust runtime in src/: CLI, core_server, shared infrastructure.subtaskSubtask of a larger tracked effort.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions