Issues: per-project numbers, statuses (open, accepted, rejected, withdrawn, duplicate), feature links, edits, and a timeline of comments and events. From an issue, collaborators create or update a feature with the revision tied to the issue and an option to accept it. Comments: general and line-anchored threads on features, one discussion thread per issue, edit history, tombstone deletes, resolve, and promoting a feature thread to an issue. Line threads attach to top-level Markdown blocks and go outdated only when the text changes. HTMX swaps threads in place with focus management; every action also works as a plain form post. Markdown headings are re-levelled so user text never skips heading levels on the page. The example flow from concept.md (steps 1-7) is covered end to end in tests/test_example_flow.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9 lines
455 B
JavaScript
9 lines
455 B
JavaScript
// Keyboard and screen-reader focus after HTMX swaps a thread in place.
|
|
// The server marks the element to land on (a new or edited comment, or the thread itself)
|
|
// with data-autofocus; without this, focus would fall back to the top of the page.
|
|
document.addEventListener("htmx:afterSettle", function () {
|
|
var target = document.querySelector("[data-autofocus]");
|
|
if (!target) return;
|
|
target.removeAttribute("data-autofocus");
|
|
target.focus();
|
|
});
|