Open
#100
Enhancement
Migrate symbol deep-link syntax from #S:Name to #::Name
0
Anchors
—
Blast radius
—
Churn 30d
0
Proposals
Symbol deep-link URL syntax: migrate from #S:Name to #::Name
Background
Muse already owns :: as its universal symbol separator — it appears in every CLI
address (muse code cat "domain.py::InsertOp"), every issue anchor, every impact
query. The current blob deep-link fragment #S:InsertOp works correctly but borrows
a convention from outside the ecosystem rather than using Muse's own idiom.
A developer who knows the CLI should be able to look at:
muse/domain.py#::InsertOp
and immediately read it as "scope into symbol InsertOp" — the same mental model as
domain.py::InsertOp in the terminal.
The current #S: prefix also has a minor inconsistency: line anchors use no separator
(#L160) while symbol anchors use a colon (#S:InsertOp). #::InsertOp sidesteps
this entirely — the :: is the separator, the same as everywhere else in Muse.
Goal
#::InsertOpdeep-links to theInsertOpsymbol in a blob view#S:InsertOpcontinues to work as a permanent alias (backward compatibility for any existing links in issues, mists, external docs)- The canonical form emitted by
symbol_anchor.pyand the UI anchor picker becomes#::Name
Scope
musehub/services/symbol_anchor.py— updateblob_url()to emit#::Namemusehub/api/routes/musehub/ui_blob.py— blob page fragment resolution logic- UI anchor picker — generate
#::Namein copy-to-clipboard and insert-link flows - Docs / README references to
#S:syntax
Out of scope
- Changing the
::separator in CLI addresses or issue anchor strings — those are already correct - Any changes to line anchors (
#L160,#L160-L175) — those stay as-is
Activity
No activity yet. Use the CLI to comment.