Issues

65 issues · 3 open · newest first
MR☐Max Rakhimov · 2026-10-31 · 49f0f3533960
The import mapping at <cache>/imports/<url-slug>.json records the commit hash and branch of each imported forge item, keyed by the repository URL. A new workspace that mirrors the same forge repository, into another bucket or after a cloned workspace is deleted, reads the
MR☐Max Rakhimov · 2026-10-31 · 2f18278f89f3
A gitsocial push is several git pushes: the code branches, the extra branches, the tags, each gitmsg/<ext> branch, then refs/gitmsg/* when a state ref moved. gitmsg.PushWithProgress sets GITSOCIAL_S3_DEFER_MAINTENANCE=1 on every transfer but the last, and the helper runs the
MR☐Max Rakhimov · 2026-10-31 · 87d6d16539fc
gitsocial release list with no --repo flag passes an empty repository URL to release.GetReleases, and GetReleaseItems drops the repo_url filter on an empty URL. The command then lists the releases of every repository in the shared cache. In a clone of a mirrored bucket it shows
MR☑Max Rakhimov · 2026-10-12 · 9ddb274e613f · closed
The site step writes one prefix, .gitsocial/forks/: one non-thin packfile per open head with the objects reachable from the head and from no bucket ref, then manifest.json last, then a sweep of packs the manifest does not name. Nothing outside the prefix changes: no object, no
MR☑Max Rakhimov · 2026-10-12 · 5fcc5b0b700b · closed
fetch forks brings each fork's review branch. Add the head branch of each open fork pull request whose base is this repository to the same fetch, into refs/fork/<urlHash>/<branch> of the fork bare repository, one connection per fork as today. The selection is the rule pr list
MR☑Max Rakhimov · 2026-10-12 · 4a4a925df0b0 · closed
The site key forkPullRequests, default false, turns the fork area on. Off again deletes the prefix on the next push. A lock key in the prefix, put by the owner, freezes the area: the push writes and deletes nothing there and prints one note. The site step line of gitsocial push
MR☑Max Rakhimov · 2026-10-12 · 0e06173c1ef5 · closed
The app reads .gitsocial/forks/manifest.json for the list: the pull requests of forks with a fork chip and the fork URL, merged with the repository's own. The detail reads the head trees from the fork pack and the base and the shared objects from the bucket packs, through one
MR◆Max Rakhimov · 2026-10-12 · beb35ee74bbb · closed
☐ 4 issues area/site
MR☑Max Rakhimov · 2026-10-12 · e8227d4fe90d · closed
The HTML page of a pull request shows no diff. The page carries the files changed with status and line counts, and the unified hunks up to a page cap, from the local object database of the pusher. Past the cap, a notice and the app. A range that does not resolve locally carries
MR☑Max Rakhimov · 2026-10-12 · 3073539a8d77 · closed
pr merge fetches the head into a temporary branch, merges, and deletes the branch. After a squash or rebase merge the commits behind merge-head are on no ref: git gc prunes them in the workspace, and in the bucket nothing expands the short. GITREVIEW.md 1.5 names
MR☑Max Rakhimov · 2026-10-12 · 225eac527919 · closed
The History picker repaints the body of the selected version, and the Changes section does not follow. The section takes the range of the selected version: the merge range for a merged final version, else that version's base-tip..head-tip. A selection replaces the section. A
MR☑Max Rakhimov · 2026-10-12 · a634111867c7 · closed
A 12-character short (head-tip, merge-base, merge-head) expands only through the code index or a walk of the live base branch. A commit that is in a pack but on no branch does not expand: a rebase or squash merge whose head branch is deleted, and every older version. Add a
MR◆Max Rakhimov · 2026-10-12 · a9bfa13e66b9 · closed
☐ 5 issues area/site
MR☑Max Rakhimov · 2026-10-03 · 9dc9da2e94fd · closed
TestProviderNotifications/GetNotifications_limitTruncation failed once in the quick tier with "expected 1 notification with limit=1, got 0" and passed on every rerun. Its subtests run in parallel and insert their pull request and feedback rows under the shared test URL on the
MR☑Max Rakhimov · 2026-10-03 · 6a20ec113d44 · closed
A tree and a file view on a branch, the TUI counterpart of the code view of the site: the tree of a branch, a file with line numbers and syntax highlight, and a line range. Reached from Repository, My Repository and Branches; Enter on a directory descends, Enter on a file opens
MR☑Max Rakhimov · 2026-10-03 · 06cdb537d19b · closed
One row per tag: name, date, author, commit count since the previous tag, and a release mark when a release names the tag; the TUI counterpart of the Tags page of the site, modeled on the Branches view. Reached from Repository, My Repository and Branches. Enter opens the release
MR☑Max Rakhimov · 2026-10-03 · 28b438f6c987 · closed
The count query of a search with a social type filter, for example type:post, builds a condition on si.type without a join of the social table, so SQLite fails with: no such column: si.type. The error is ignored, the total reads 0, and with a limit the total and has_more are
MR☑Max Rakhimov · 2026-10-02 · 5e8e8dba2322 · closed
A search with --state open and a --labels filter returned issues whose state is closed; the state field of each result said closed. Seen three times on 2026-10-01: --type issue --state open --labels area/ui returned #commit:698387093073@gitmsg/pm, and --type issue --state open
MR☑Max Rakhimov · 2026-10-02 · 908731eff393 · closed
The cache writes one pm_links row for each commit that carries a blocks, blocked-by or related field, with the hash of that commit as the source. An edit commit carries the full header again, so each edit of an issue adds one more row with the edit hash as the source, not the
MR☑Max Rakhimov · 2026-10-02 · 0f58148a8080 · closed
A commit that leaves its branch is marked stale, but its pm_links rows stay, and the issue detail lists them. After a rewrite of unpushed issue commits, the Related list of the target showed each removed commit beside the current ones, until a cache rebuild. Expected: the
MR☑Max Rakhimov · 2026-10-02 · bc04f57120ad · closed
A #file: reference in a body stays plain text in the TUI. Memo, tag, commit and branch references open. The target is the Code view of #commit:6a20ec113d44@gitmsg/pm: a #file:<path>@<branch>:L<n>-<m> reference opens it at the path and the line range, the grammar the site uses.
MR☑Max Rakhimov · 2026-10-02 · 900bc7b436bf · closed
A #branch: reference in a body stays plain text in the TUI. Memo, tag and commit references open. The Repository view shows the posts of a repository, not the commits of a branch, so no view can be the target yet. The Branches view and the branch param of
MR☑Max Rakhimov · 2026-10-01 · 53991b82d95f · closed
The TUI opens a #commit: reference in the matching view through the cache. A #branch:, #tag: or #file: reference stays plain text, since the TUI has no view for those targets yet. A memo reference lands on the commit diff view until extension detection covers memo items.
MR☑Max Rakhimov · 2026-10-01 · 97905998ec14 · closed
gitsocial search --type issue --state open returns issues whose latest version is closed, and the same issue also matches --state closed, so the two state filters overlap. pm issue list --state open counts 6 where search --state open counts 22. The filter looks at a version's
MR☑Max Rakhimov · 2026-09-30 · f5f49484481a · closed
Three parts, one branch. Columns are flex 0 0 15rem, so in the fixed-width shell about three fit and the later columns, Done included, fall off with no visible affordance; give the board a proper answer to the fixed shell. A collapsed column frees space the expanded ones never
MR☑Max Rakhimov · 2026-09-30 · f0bf24fff9bb · closed
p already pushes every resolved remote (the configured list; the picker appears only on ambiguity). Add the --all-remotes equivalent as an explicit choice, a picker entry or a shifted key, resolving through client.AllRemotes so the CLI and the TUI cannot drift. Decided: not the
MR☑Max Rakhimov · 2026-09-30 · 8c91073d2368 · closed
The dimmed rendering is too dark to read comfortably. The dim grays are flat constants (grayDim #808080 dark / #9e9e9e light, meta gray 242); raise them a step and derive them from the theme, so dark and light get their own lift.
MR☑Max Rakhimov · 2026-09-30 · 2d07cbc82c42 · closed
Dimming carries four meanings today: stale commits, unpushed items, read notifications (socialIsDimmed is unpushed or read), and the nested reply-to or quote parent card, so a quoted parent reads as unpushed. Decided: the nested parent gets an accent left border with
MR☑Max Rakhimov · 2026-09-30 · 032ac4c110b4 · closed
The workspace sync windows its walk from the newest cached timestamp minus one minute, and creating any item (an issue, a comment, a close) inserts its commit into the cache directly at that moment. A git commit whose committer date is more than a minute older than the next
MR☑Max Rakhimov · 2026-09-28 · 8aba47f4df48 · closed
:::note and its siblings render as short paragraphs. A proper admonition component needs the design rules applied: one class set and tokens rendered identically by the page layer and the app (design rule 2), a parity fixture, and the mdx fixture's goldens updated in the same
MR☑Max Rakhimov · 2026-09-28 · 67451e5d7d3f · closed
Fifty timeline rows cost about 45 packmap shard reads after paint: each item's body is one loose-object read, and each sha lands in its own two-hex packmap shard. The shard promises are already memoized per context, so the reads are distinct shards, not repeats. Candidate fix:
MR☑Max Rakhimov · 2026-09-28 · f8db6fcbc4fd · closed
An item's comment count includes comments whose commits are stale (rewritten or force-pushed away), while the comment list excludes them, so the count can exceed the comments shown. Timeline and list queries exclude stale commits; the counter should apply the same filter.
MR☑Max Rakhimov · 2026-09-28 · 2be9fb242de3 · closed
gitsocial push --dry-run against a completely empty remote fails: the tags push (git push --tags --porcelain --dry-run) errors with 'No refs in common and none specified' when the workspace has no tags and the dry run pushed nothing before it. A real push does not hit it,
MR☑Max Rakhimov · 2026-09-27 · a2a1c18a643f · closed
Since the palette update, four of the eight graph lanes sit in one hue band: lane 0 --link #404ddd, lane 1 --closed #8957e5, lane 5 --i-blue #1a85d4 and lane 7 --i-indigo #693acf (GRAPH_LANE_VARS in gs-render.js). Lane 0 was teal before. Dark theme is worse: --link resolves to
MR☑Max Rakhimov · 2026-09-27 · 9b6079710a4e · closed
Two related gaps in the TUI documentation chain. Nothing fails when library/tui/tuiviews/help.md or help_keys.md drifts from its source in documentation/; it went stale twice, and a two-line test comparing each copy to its source closes it. And tuikeydoc never registers /diff,
MR☑Max Rakhimov · 2026-09-27 · 4604605aa0a5 · closed
Four small fixes, one branch. pageURLForHash has no /timeline entry though hashForPath maps it back, so the timeline normalizes to index.html#/timeline unlike the other list routes. 50 timeline rows cost about 45 packmap reads after paint. Docusaurus admonitions (:::note) render
MR☑Max Rakhimov · 2026-09-27 · 90ae95ab7b49 · closed
A retraction commit has no subject line, so git log shows its trailer as the subject. Give it a subject.
MR☑Max Rakhimov · 2026-09-27 · 7c31eae8b570 · closed
settings.Validate accepts s3.concurrency=0 while settings.Set requires at least 1. Align the two on the same floor.
MR☑Max Rakhimov · 2026-09-27 · 303919092525 · closed
The importer records a literal gitmsg/social for posts and comments (library/import/import.go), although social's branch is the workspace's own setting. Check which branch it commits to before calling it a bug; fix the recorded branch if they differ.
MR☑Max Rakhimov · 2026-09-27 · e811ecb9eefc · closed
The link color #008787 measures 4.11 to 1 on a card and 3.78 on the page, under the 4.5:1 minimum, on every ground the site uses. Darken it, or record the acceptance in STATIC-SITE.md; the palette decision predates the 2026-09 review.
MR☑Max Rakhimov · 2026-09-27 · 19e2df6162ef · closed
Stale local branches stay visible after a fetch (f) in the TUI until restart. Reported 2026-09-19, not located: workspace sync marks commits stale per repository, and nothing found caches a branch list. Reproduce first and record the screen name.
MR☑Max Rakhimov · 2026-09-27 · 69506a37deb9 · closed
Show the current and staged diff of the workspace in the TUI, and commit from there. No design doc yet; this needs a design note before code (it adds a write path to the TUI).
MR☑Max Rakhimov · 2026-09-27 · 107fff2a6051 · closed
The site shows a pull request but not its diff. Show the diff of a PR on its page. Split into the milestone of the same name on 2026-10-12: the pack index short sha, the version-aware Changes section, the merged head ref, and the static diff on the page. This issue closes with
MR☑Max Rakhimov · 2026-09-27 · f4e5baa97a2d · closed
One command that pushes everything relevant to all remotes: the gitmsg/* branches, the state refs, the tags, and the default and relevant code branches. Decide what 'relevant branches' means. Related: the push bug on a checked-out feature branch; its fix may shape this design.
MR☑Max Rakhimov · 2026-09-27 · 3a7c9fd84161 · closed
A Branches view (one row per branch: name, commit count, last commit time, default mark) reached by b from Repository and My Repository. Enter opens the Repository view on that branch. An empty branch param means all branches. Folds two defects: the hardcoded 'main' and the
MR☑Max Rakhimov · 2026-09-27 · 39d77e54c258 · closed
Replace every 'Loading…' text with one spinner: a thin ring that turns, from font-size and currentColor, with a reduced-motion fallback. A place that knows a count shows the count next to the icon.
MR☑Max Rakhimov · 2026-09-27 · 7955f931fb47 · closed
A #commit:<hash> reference in a body or a comment renders as plain text. Link it to the commit's page on the site and to its view in the TUI. Scope decision in the work: the same for the other ref types (branch, tag, file, list) and for item references to issues, PRs, releases
MR☑Max Rakhimov · 2026-09-27 · a82f80be79a2 · closed
The timeline shows items but not the actions on them. Show action entries, such as an issue closed, a PR merged, or a release published. Decide which actions appear and how an action entry renders next to a content entry.
MR☑Max Rakhimov · 2026-09-27 · 945ebb189047 · closed
The graph, the branch list and the branch log show no tags. Show each tag as a chip on its commit, the way the branch tips show, and list the tags with the branches where that fits.
MR☑Max Rakhimov · 2026-09-27 · b7e748dbcf2b · closed
Poll git for-each-ref refs/heads refs/tags refs/gitmsg every 2 s and push when the output changes. One push runs at a time; changes during a push cause exactly one more push after it. A failed push keeps the last build served, prints the error, and the watch continues. Design:
MR☑Max Rakhimov · 2026-09-27 · 6d43f26170d4 · closed
On a clean exit, delete the serve tracking refs. On start, reconcile from the bucket, so a crash or a deleted bucket root repairs itself: delete the root, start again, and the site renders. Design: .local/design/serve.md, failure modes.
MR☑Max Rakhimov · 2026-09-27 · 4ebf89f67666 · closed
gitsocial serve [--addr 127.0.0.1:<port>] [--open]. Start the localbucket handler on loopback, add the serve remote to the process environment only (GIT_CONFIG_* entries, no git config writes), push with client.Push, and serve the site app from the bucket root at
MR☑Max Rakhimov · 2026-09-27 · 768dec0c1565 · closed
Extract the handler in locals3/main.go as localbucket.Handler(root string) http.Handler. The root and the mutex move into the closure, so the package has no mutable package-level state. locals3 keeps its flags and calls localbucket.Handler; its build path and the site-test
MR◆Max Rakhimov · 2026-09-27 · cfe7459e1f01 · closed
☐ 4 issues area/cli
A local, disposable view of the workspace's site. gitsocial serve starts a loopback S3 server in process, pushes the workspace to a bucket on it, and serves the site app from that bucket. Design: .local/design/serve.md. Ships when the command, the watch loop and the cleanup
MR☑Max Rakhimov · 2026-09-27 · 2866e9881adf · closed
When an upstream repository adopts an item from a fork, does the original author get a notification for a later upstream edit of the adopted item, or for a comment on it? Decide the intended behavior, then check the code against it. Close this issue with the answer; open a
MR☑Max Rakhimov · 2026-09-27 · 698387093073 · closed
The sidebar counts keep their old values after a press of the app refresh button. Expected: a refresh updates each count.
MR☑Max Rakhimov · 2026-09-27 · 9ff1e4698202 · closed
A gitsocial push from a checked-out feature branch breaks the published site. The site step treats the branch as the default branch and sets it as the site head. Expected: the site keeps the real default branch, and a push from a feature branch publishes no wrong head.
MR☑Max Rakhimov · 2026-09-26 · 34625b1a45d8 · closed
The shell loads gs-core.js and the other app scripts under fixed names, and they are served with cache-control max-age=14400. After a push that changes them, a browser runs the old scripts for up to four hours, so a reader sees old behavior next to new data until a hard reload.
MR☑Max Rakhimov · 2026-09-26 · 1ea6c1ae9fce · closed
gitsocial pm issue list in a workspace lists the issues of every followed repository in the cache, not only the workspace's own and its registered forks'. In one workspace, 15 of 20 listed issues came from two followed repositories that are not forks.
S☑ShakhovaAnastasiz · 2026-09-08 · 9df57dc74804 · adopted from s3://s3.us-east-2.amazonaws.com/amzn-test-bucket-gt/gitsocial-fork · closed
gitsocial pm issue show rejects #commit:hash@branch for an issue in the current repository.
S☑ShakhovaAnastasiz · 2026-09-08 · c2f21b2da5c8 · adopted from s3://s3.us-east-2.amazonaws.com/amzn-test-bucket-gt/gitsocial-fork · closed
gitsocial memo show 4 matches two project memos, 4a23276c29e2 and 4d2b160c7d7f, and returns one without an error.
S☑ShakhovaAnastasiz · 2026-09-07 · 15298e5daa8f · adopted from s3://s3.us-east-2.amazonaws.com/amzn-test-bucket-gt/gitsocial-fork · closed
S☑ShakhovaAnastasiz · 2026-09-07 · 1ab93ce038b8 · adopted from s3://s3.us-east-2.amazonaws.com/amzn-test-bucket-gt/gitsocial-fork · closed
S☑ShakhovaAnastasiz · 2026-09-07 · 7e093fdef8a5 · adopted from s3://s3.us-east-2.amazonaws.com/amzn-test-bucket-gt/gitsocial-fork · closed
D☑Daeraxa · 2026-05-17 · e869bdc42144 · adopted from https://codeberg.org/Daeraxa/GitSocial · closed
When trying to install with `go install github.com/gitsocial-org/gitsocial/library/cli@latest` it fails with the following error: