You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Full monolith-to-package port and monolith deprecation
Problem
The monolith dazzlelink.py (4,415 lines) and the modular package dazzlelink/ have diverged significantly. The monolith has all working features; the package has critical gaps that prevent python -m dazzlelink from functioning reliably. Key failure: AttributeError: 'DazzleLink' object has no attribute '_make_dazzlelink_executable'.
The monolith is what the Windows file association points to, what we test with, and what has all the latest features. The package is effectively broken for core operations.
Fix _make_dazzlelink_executable -- the method call in core.py:313 should delegate to links.make_dazzlelink_executable() which already exists as a module-level function
Fix execute mode precedence in recreate.py -- swap global/file priority to match monolith
Phase 2: Feature parity
3. Port rebase_dazzlelinks() to operations/batch.py
4. Wire CLI rebase to call both rebase_links() and rebase_dazzlelinks()
5. Port enhanced info display to recreate.py
Phase 3: Deprecation
6. Add deprecation warning to monolith dazzlelink.py header
7. Update file association scripts to use python -m dazzlelink
8. Update all documentation references
9. Eventually remove monolith (after one release cycle)
Implementation approach
The config change for #19 (default_mode None sentinel) should be applied simultaneously with Phase 1 step 2, since both touch the same code path.
Full monolith-to-package port and monolith deprecation
Problem
The monolith
dazzlelink.py(4,415 lines) and the modular packagedazzlelink/have diverged significantly. The monolith has all working features; the package has critical gaps that preventpython -m dazzlelinkfrom functioning reliably. Key failure:AttributeError: 'DazzleLink' object has no attribute '_make_dazzlelink_executable'.The monolith is what the Windows file association points to, what we test with, and what has all the latest features. The package is effectively broken for core operations.
Audit Results
_make_dazzlelink_executable()rebase_dazzlelinks()Proposed solution
Port all gaps in this order:
Phase 1: Unblock
python -m dazzlelink(quick fixes)_make_dazzlelink_executable-- the method call incore.py:313should delegate tolinks.make_dazzlelink_executable()which already exists as a module-level functionrecreate.py-- swap global/file priority to match monolithPhase 2: Feature parity
3. Port
rebase_dazzlelinks()tooperations/batch.py4. Wire CLI
rebaseto call bothrebase_links()andrebase_dazzlelinks()5. Port enhanced info display to
recreate.pyPhase 3: Deprecation
6. Add deprecation warning to monolith
dazzlelink.pyheader7. Update file association scripts to use
python -m dazzlelink8. Update all documentation references
9. Eventually remove monolith (after one release cycle)
Implementation approach
The config change for #19 (default_mode None sentinel) should be applied simultaneously with Phase 1 step 2, since both touch the same code path.
Files affected:
dazzlelink/operations/core.py-- fix _make_dazzlelink_executable calldazzlelink/operations/recreate.py-- mode precedence + info displaydazzlelink/operations/batch.py-- add rebase_dazzlelinks()dazzlelink/config.py-- default_mode None (Design proper execute mode precedence (global vs file-embedded) #19)dazzlelink/cli.py-- rebase dispatch updatedazzlelink.py-- add deprecation warningAcceptance criteria
python -m dazzlelink createworks (no AttributeError)python -m dazzlelink executerespects file's embedded modepython -m dazzlelink execute --mode infoshows enhanced displaypython -m dazzlelink rebasefixes stale .dazzlelink pathspython -m pytest tests/ -vpython -m dazzlelinkEffort estimate
~6-8 hours of focused work across 3 phases.
Related issues
Analysis
See
2026-04-01__06-18-11__issue-18-19-execute-mode-precedence-and-sync.md