Skip to content

← All documentation

Post-install setup · Y2Reborn

Concrete technical debt and architectural drift

Documentation published by SchulzCode/Y2Reborn.

Instructions published by the project, shown here word for word.

Concrete technical debt and architectural drift

> **Historical record.** The dates, candidate identity, "current" claims, > next steps and permissions below belong to this recorded boundary. See > [current state](../../CURRENT_REBORN_STATE.md) for the latest physically observed result.

Drift that materially affects behavior

AreaDriftConsequenceAppropriate correction scope
QueueAppModel queue plus copied worker schedule without revision protocolDisplay/edits/repeat diverge from actual playbackEntry identity + ownership/update contract; F03
Audio lifecycleUI/runtime probes real ALSA while audio worker owns itEBUSY and restart-style controlsOne serialized sink owner; F02
PrecisionCanonical FLTP description hides limiter DBL negotiation and transition S32 round tripsMisleading precision/cost claimsTrace/explicit format policy, retain FFmpeg authority; F10/F12
ArtworkNext-decoder preparation publishes current-generation artUI changes before audible track boundaryTrack/entry identity on artwork events; F24
Collection identityUI filter reduced to global index; album identity reduced to labelPlay Album enqueues library; same-title albums mergeCarry stable collection/queue intent; F08/F21
PersistenceWhole model snapshot becomes a 15-second heartbeatIdle flash writes and oversized restore failuresDirty durable state with coherent bounds; F06
ScannerEnqueue/order barrier treated as successful commitFalse completion/pruning after failed writesAcknowledged scan transaction outcome; F05
Release metadataOld Y2PlayerNative “unimplemented” contract survives Reborn integrationValidator blesses obsolete factsCurrent paired payload contract; F14
EvidenceHistorical baseline FFmpeg6/QEMU/font metadata presented beside FFmpeg9/current UIReaders overestimate current qualificationVersion-bound receipts and one current index; F27

Evidence/symbols for every row are in the corresponding detailed report and master table. None requires splitting the repositories into unrelated products.

Overengineering / opportunities to simplify

Underengineering

Modules worth attention, not automatic splitting

main.rs and playback.rs are the primary integration-risk modules. Extract a responsibility only when it makes a queue/lifecycle/state contract testable. Native media C needs a lifetime/error audit, not wholesale language replacement. The densely formatted database dispatch deserves local readability work when changing acknowledgements. UI screen layout length alone is not a refactoring priority. The imported Wi-Fi core deserves continued narrow integration testing and maintained provenance; rewriting it is a large separate hardware project.

Legacy/dead candidates: F30

TODO count is not a useful debt score here. Several serious incomplete behaviors have no TODO marker. Conversely, explicit reserved/unsupported branches in hardware policy are safer than silently claiming support.

Debt that should not be “paid” now

Do not reclaim reserved memory, widen charging current/voltage envelopes, rewrite bootloader/storage translation, replace Linux subsystems, replace SQLite/FFmpeg, rename the entire workspace, chase zero unsafe code across FFI, or redesign the UI during stabilization. These changes would add new qualification scope without fixing the identified player contracts. Preserve author/committer identity and source/license provenance.

Published by the SchulzCode/Y2Reborn project [1] [3]