Commit log

33ffa28 fix(backend): update log import path

Click to expand commit body
Update log package import from github.com/charmbracelet/log/v2 to
charm.land/log/v2 to use the correct module path.

Amolith created

8224830 fix(web): update renderMarkdown call sites

Click to expand commit body
The renderMarkdown function was updated to accept a second parameter
(*ReadmeContext) for URL rewriting, but two calls in webui_bugs.go
weren't updated. Passing nil since no README context is needed for bug
timeline message rendering.

Amolith created

67e2f45 fix: deps

Click to expand commit body
my rebased borked the deps, this fixed

Amolith created

eb9cccf feat(web): add description meta to bug pages

Click to expand commit body
Add proper description metadata to bug listing and individual bug pages
for better SEO and page information. Bug list uses repo description or
fallback, individual bug pages use truncated bug message.

Implements: bug-8d2588d
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

9382c0b feat(web): show dynamic status in bugs list

Click to expand commit body
Bugs list now displays "Closed" or "Reopened" instead of
generic "Updated" when the last event was a status change.
Other events (comments, title changes, label changes) still
show "Updated".

Implements: bug-f3568dc
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

c330a0a fix(web/bugs): trim separator leading whitespace

Amolith created

b6c47fc fix(web/bugs): indicate correct branch

Amolith created

67a7261 fix(web/bugs): increase separator padding

Click to expand commit body
Implements: bug-2c55712

Amolith created

d0ab7ed feat(web/bugs): show previous title in changes

Click to expand commit body
Title change events now display both the old title
(strikethrough) and new title (underline) using semantic
HTML tags (<del> and <ins>), providing better context for
how bug titles have evolved over time.

Implements: bug-ef59d5b
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

c4e5991 fix: pluralize comment count in bug listing

Click to expand commit body
Display '1 comment' instead of '1 comments' when a bug has
exactly one comment.

Implements: bug-224db6f
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

dd40100 feat(web/bugs): use styled spans for label

Click to expand commit body
events

Display labels in bug timeline label change
events with the bug-label CSS class and
--label-color custom property instead of plain
code tags, ensuring consistent visual styling
across all label displays.

Implements: bug-f4f7a02
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

3fe1b8d feat: display labels on bugs list page

Click to expand commit body
Add label rendering to bug list items matching the
individual bug page styling. Include 'Labels:' prefix on
bug detail page for clarity.

Implements: bug-4a60415
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

4d8444c feat: add page titles and meta for bug pages

Click to expand commit body
Refactor BugsData and BugData to use embedded
RepoBaseData and PaginationData structs. Set
appropriate page titles: "Bugs | {repo}" for bug
list and "{title} | Bug {id} | {repo}" for
individual bugs. Rename Title field to Subject in
BugData to match git-bug terminology.

Implements: bug-87f9da5
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

0996222 refactor: reword bugs list author/date format

Click to expand commit body
Change the bugs list display from "Opened {time} by {user}" to
"{user} opened {time}" format for better readability and more
natural language flow.

Implements: bug-ad8cdc0
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

9ae6f3a feat: display git-bug identity avatars in web UI

Click to expand commit body
Add avatar display functionality to the bug tracking interface.
Integrates with git-bug's AvatarUrl() method to fetch and render
identity avatars safely in both bugs list and detail views.

- Add AuthorAvatar fields to BugListItem and TimelineItem structs
- Fetch avatar URLs using snap.Author.AvatarUrl() in backend
- Create responsive avatar CSS styling with fallbacks
- Update templates to display avatars before usernames
- Implement lazy loading and referrer policies for security

Implements: bug-d42c94f
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

fe5c77d fix: correct bug label color conversion

Click to expand commit body
Remove unnecessary 16-bit to 8-bit channel conversion in
labelToWebLabel. The RGBA() method already returns proper 8-bit
values, not 16-bit as previously assumed.

Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

9242e18 feat: enhance bug label styling in web UI

Click to expand commit body
Add CSS styling for bug labels with proper borders and background
colors. Update the bug template to use styled labels instead of
plain code elements.

Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

9143193 chore: web UI polish

Click to expand commit body
Fixes: bug-45aeed6
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

fae5364 feat: show bug status as leading icon

Click to expand commit body
Implements: bug-c5d4e47
Implements: bug-dea9f51
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

dbc7060 refactor(bug-list): default to open bugs

Amolith created

5eec02e fix(web/bugs): improve cache management

Click to expand commit body
Implements: bug-3823b04
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

153f9e3 feat: add status badge to bug detail page

Click to expand commit body
Display open/closed status in bug title with badge styling
mirroring the bugs list view implementation.

Implements: bug-165b8f1
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

70ccca1 fix(bug-list): fix meta display, mv comment count

Click to expand commit body
References: bug-3a06724

Amolith created

c079fb8 fix: correct HTML and color conversion in bug UI

Click to expand commit body
Fix invalid HTML syntax where status timeline footer tag was
incorrectly duplicated instead of being closed properly.

Add defensive conversion of RGBA color channels from 16-bit
(0-65535) to 8-bit (0-255) before formatting as CSS hex colors
to ensure valid color output for bug labels.

References: bug-7d32125

Amolith created

83610a7 refactor: improve bug page semantic HTML structure

Click to expand commit body
Restructure bug timeline to use semantic article elements with proper
headers and footers, improving accessibility and HTML structure.

Implements: bug-9b4c17f

Amolith created

df93247 style: improve bug status badge styling

Click to expand commit body
Change bug status badges to use bordered styling instead of solid
background colors for better visual consistency with existing UI
elements. Open status uses valid border color, closed status uses
secondary border color.

Implements: bug-330aea0
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

97f488d feat: add git-bug integration to web UI

Click to expand commit body
Implement web interface for displaying git-bug issues including
bug listing page, individual bug details, and navigation integration.
Add styling and handlers for bug display functionality.

Implements: bug-7d32125
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

ee1a53f chore: fix deps, fmt, lint, etc.

Amolith created

3033a28 fix(webui): move script to file because csp

Amolith created

c304fdd feat(webui): allow data URIs in img-src CSP

Click to expand commit body
Assisted-by: Claude Sonnet 4.5 via Crush

Amolith created

ad140da feat(webui): allow details and summary tags

Click to expand commit body
The Markdown sanitizer now preserves <details> and <summary> tags,
enabling collapsible sections in README files and blob views.

Added test coverage to verify these tags are properly preserved through
the sanitization process.

Closes: bug-f881844
Assisted-by: Claude Sonnet 4.5 via Crush

Amolith created

aa1049e feat(webui): rewrite README links without proxy

Click to expand commit body
Implement rendering of images and links in README files without
requiring an image proxy. Relative URLs are rewritten to point to
repository files pinned to specific commits.

Relative images and files are served through the blob endpoint with
?raw=1 query parameter. Links to markdown files render the formatted
view, while other files download raw. Directory links go to tree view.

Assisted-by: Claude Sonnet 4.5 via Crush

Amolith created

5b2c6f9 feat(webui): add individual tag detail pages

Click to expand commit body
Implement /{repo}/tag/{tag} route displaying tag metadata including
name, authorship, creation date, optional annotation message, and links
to file tree and commit.

Tag dates use tagger date for annotated tags, falling back to commit
author date for lightweight tags, matching the tags list behavior for
consistency.

Implements: a0daef3
Assisted-by: Claude Sonnet 4.5 via Crush

Amolith created

b764757 feat(webui): add patch/diff links on commit page

Click to expand commit body
Implements: bug-05a795c
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

433dcd1 chore(crush): yeet mcp

Amolith created

3cc6544 feat(webui): preload css, syntax is only for blobs

Click to expand commit body
Implements: bug-0fb4c59
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

07b2ccf feat(webui): render co-authors on branches/tags

Click to expand commit body
Branches and tags pages now extract and display co-authors
from commit message trailers using the attributionNames
template function. This replicates the existing commits page
behavior, showing &#34;Author, Co1, and Co2 created time&#34; format.

Implements: bug-f5cf6b5
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

357b90f feat(webui): add og tags

Amolith created

3f83739 feat(web): add meta descriptions to pages

Click to expand commit body
Adds Description field to BaseData and populates it across
all web UI pages (home, about, blob, tree, branches, commits,
tags). Descriptions are derived from:
- Repository descriptions (truncated to 200 chars)
- Server README content (converted to plain text)
- Context-appropriate fallbacks

New helper functions in webui_helpers.go:
- extractPlainTextFromMarkdown: strips markdown formatting
- truncateText: truncates text at word boundaries
- getRepoDescriptionOrFallback: repo desc or fallback

Implements: bug-7b97785
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

9aab64b fix(web): add Repo field to AboutData struct

Click to expand commit body
The base.html template checks for .Repo to conditionally render
repository navigation. AboutData was missing this field, causing
template execution to fail with "can't evaluate field Repo".

Adding the nil Repo field allows the {{if .Repo}} check to work
correctly, skipping repository navigation on the about page.

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

ab601bd feat(web): display co-authors in commit views

Click to expand commit body
Parse Co-authored-by trailers from commit messages and display
all contributors with proper grammar in commit and commits
pages. Authorship now reads "Author and Co-author" for one
co-author or "Author, Co1, Co2, and Co3" for multiple.

Implements: bug-7e8823e
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

a4f4cd6 feat(web/commit): use name@hash format in title

Click to expand commit body
Change commit page title from 'subject | Commit hash | name'
to 'subject | name@hash' for consistency with git conventions.

Implements: bug-4758ff9
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

7a7f489 feat(web/tree): show path and ref in page title

Click to expand commit body
Display 'repo-name/path at ref | Project name' format in tree
view titles for better browser tab/history identification.
Shows shortened commit hash when viewing specific commits.

Implements: bug-45e898a
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

0f10420 feat: use consistent tooltip pattern for time

Click to expand commit body
Modify the author/time info on the home page to follow the same
tooltip pattern as the commits page, displaying "Updated {time}".

- Change HomeRepository.UpdatedAt from string to time.Time
- Convert timestamps to UTC for consistency
- Clean up tooltip format to show timezone only once
- Remove unused humanize import

Implements: bug-af63a29
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

977d679 feat: add page titles and meta descriptions

Click to expand commit body
Add Title and Description fields to BaseData for proper
HTML title and meta description support. Update base.html
template to use these fields instead of deriving them from
Repo and ServerName.

Implement page-specific titles:
- About: "About | {server name}"
- Home: "{server name}"
- Overview: "{project name or repo}" with description
- Commits: "Commits in {ref} | {project or repo}"
- Commit: "{subject} | Commit {hash} | {project or repo}"
- Tags: "Tags | {project or repo}"
- Branches: "Branches | {project or repo}"
- Files: "Files | {project or repo}"
- Blob: "{filename} | {project or repo}"

Fix shortHash template function to use 7 characters
instead of 8 for consistency with git standards.

Implements: bug-972b30b
Implements: bug-7778d23
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

2548902 chore: web UI polish

Click to expand commit body
Fixes: bug-45aeed6
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

8c9797c chore: improve web UI styling

Amolith created

94fcf3c feat: implement CSS cache-busting for web assets

Click to expand commit body
Add version query parameters to CSS URLs to force browsers to fetch
newer versions after edits. This ensures users see updated styles
without manually clearing browser cache.

Changes:
- Add ?v=1 to overrides.css and syntax.css URLs
- Document version increment process in AGENTS.md

Implements: bug-9b0a200
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

4e4c348 feat(blob): better content-type detection

Click to expand commit body
Improve file content detection and syntax highlighting in the web UI:
- Better MIME type detection for files without extensions
- Content-based markdown detection for extensionless files
- Enhanced lexer selection prioritizing content analysis
- Added Chroma import for improved language detection

Implements: bug-147d490
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

bae1621 feat(web): add .patch and .diff for commit URLs

Click to expand commit body
Add route handlers to serve raw git patches and diffs when accessing
commit URLs with .patch or .diff extensions. This allows users to
download patches directly using curl and pipe them to git apply.

Implements: bug-d552262
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created