Problem
Sometimes multiple signals are resolved because the work has been collapsed into another signal, e.g.
Collapsing all this work into signal XYZ
Today the only way to reference that target signal is to paste a localhost URL, but that is brittle because URLs will break when Hermes moves from local Docker hosting to another origin.
Goal
Allow a signal source/event to reference another Hermes signal by internal signal ID, making the relationship origin-agnostic.
Proposed UX
On Signal Detail, when adding a source/link:
- Support existing external URL source
- Add an option to link another signal
- User can search signals by title/id
- Selecting a signal stores the target signal ID
- Render linked signal as an internal reference, e.g.
Linked signal: XYZ - Payment rules cleanup
Clicking it navigates using the current app origin/router, not a stored URL.
Data Model
Add support for internal signal references.
Possible approach:
Event {
id
signalId
note
link? // external URL
linkedSignalId? // internal Hermes signal reference
createdAt
}
Alternative if sources are separate from events:
SignalSource {
id
signalId
type: "external_link" | "internal_signal"
title
url?
linkedSignalId?
createdAt
}
Acceptance Criteria
- User can search for an existing signal when adding a source/link.
- User can attach another signal as an internal reference.
- Stored reference uses linkedSignalId, not a copied URL.
- Linked signal renders as a clickable internal app link.
- Link still works if Hermes changes host/origin.
- Resolved signals can still be searched and linked.
- Prevent linking a signal to itself.
- Add basic handling for deleted/missing linked signals.
- Update current spec and schema docs.
Notes
This supports the workflow where older/duplicate signals are resolved after being collapsed into a canonical signal.
Problem
Sometimes multiple signals are resolved because the work has been collapsed into another signal, e.g.
Today the only way to reference that target signal is to paste a localhost URL, but that is brittle because URLs will break when Hermes moves from local Docker hosting to another origin.
Goal
Allow a signal source/event to reference another Hermes signal by internal signal ID, making the relationship origin-agnostic.
Proposed UX
On Signal Detail, when adding a source/link:
Data Model
Add support for internal signal references.
Possible approach:
Alternative if sources are separate from events:
Acceptance Criteria
Notes
This supports the workflow where older/duplicate signals are resolved after being collapsed into a canonical signal.