v0.25.0
- 447b5af2
- Site tests: regenerate the shape goldens at the 21px body
- aa005857
- Import tests: look a pull request up in its own repository
- cd4a011b
- Site: set the last serif chrome in mono
- eaff80bc
- S3: send the path and query in the signature's encoding
- 88f0543b
- Site: drop the pre-commit-route detail links
- 8ee314dd
- Import: cap the discussions query under GitHub's node budget
- 35d0c67d
- Site: set the body type at 21px and mono chrome
- de347df2
- Git: write a message commit with its parent's tree
- a248d967
- Extensions: follow the content branch spec
- 16c80f4d
- Social: edit and retract on the post's own branch
- b5a2c4aa
- Cache: reseed instead of migrating, and drop the migration registry
- 353e21ec
- Core: drop the legacy data paths
- 4f31e8b6
- Site: paint the timeline before its item bodies
- 501cf611
- Site: keep a superseded item search off the view
- 8bf76dd6
- Site files: load and render an .mdx document
- 0b00c5c7
- Site: drop the overflow sentence, light card ground, release rows
- 9acc355f
- TUI: keep esc inside a section list that used it
- 60ab66dd
- TUI: let a form retry after a failed save
- 41c306e6
- TUI: show the error when a load or action fails
- 931d573b
- Extensions: fix the content branch of pm, review, release and memo
- b0e80406
- Specs: one content branch rule, social the only exception
- f8c79bb0
- Import: take pull request tips from the forge, and pin the diff to them
- 95abb804
- TUI settings: act on the row under the cursor
- 83e81385
- TUI: let a diff view keep tab for the next file
- 498217ad
- TUI pm: go to the new milestone or sprint after create
- 9c5b3fb9
- Settings: show each key's description in the CLI, TUI and RPC
- f8978c9d
- Fold the thin glue and drop the functions only tests called
- 2b77faf2
- Fold the leftover wrappers over a single call
- 8d200bd4
- Comment every function under library and cli
- 4bf2ebab
- TUI: unexport the names only their package reaches
- 903fb5d9
- Style: count functions with no comment line in the prose check
- 68de4f8e
- Site: call the rebuild a rebuild and the sequence a push
- 4b6a6f91
- Cache: name the raw message raw
- b114c5b9
- Tests: kill the mutation survivors, seed through the writers
- 44a613a1
- Helpers: one definition each, and the fork ref namespaces named
- 7845de6e
- Dead code: migrations, exports, codes and stale copies
- bb4598ff
- Naming: headers, prefixes, spellings and the s3 identity sense
- 0858687f
- Docs: correct the statements the follow-up read against the tree
- fbb6b01f
- Tests: stop repeat-run state leaks in three packages
- 24b3758e
- TUI: name Update's message handlers and ratchet the ceilings
- 2ba647b8
- Site tests: let the fixture server die with its runner
- 194e418e
- Release: fix the driver, scan advisories, build reproducibly
- ef67714c
- Site: give a body-only row no head, pin the card skeleton
- af2c63d5
- Site: the survey's item page, sidebar and front page fixes
- 4d977b26
- Prose: drop the confidence vocabulary, counted by the prose check
- 3c4ce7b7
- Site: blob labels, .mdx as prose, release rows, one row rule
- f7d8c4d9
- Site tests: wait on the detail paint, not a sleep
- 470f6591
- Site: one chip rule, one edited bit and one title on every row
- 3a80a76a
- Site tests: unit-cover gs-render.js to 91% of functions
- 030aa748
- Gate: count net comment lines in comment-heavy
- a133b068
- Site tests: lay a shot out at the width it names
- 5bd8bd98
- TUI tests: seed the memo tiers and golden their routes
- 5773a21a
- Gate: credit child-process coverage, TESTING.md names the tiers
- ee8a3c5c
- Site tests: gate chips, routes and the page version on the docs
- 1da6de7d
- CLI: bind the root flags per tree and run isolated tests in parallel
- 1cee23aa
- Docs: trim STATIC-SITE.md to mechanism and values
- 60a0179b
- Docs: move the site design spec in-tree
- 606cdf58
- RPC: send an error's text as data.details
- a389ff77
- Site tests: repo-shape fixtures with screenshot goldens
- bcab50ca
- CLI: write through the command's streams
- 8dfd25b7
- Docs: one place for the rules a session follows
- 9c34ec9c
- Gate: fail a commit whose comment lines outnumber its code
- 68ebe8b6
- CLI tests: run the command tree in the test process
- edb36355
- Errors: show the details after the message
- dd68d7eb
- TUI tests: age fixture commits into one relative-time bucket
- ede3e178
- Docs: name the coverage and fixture stages, drop the tier times
- da24e849
- CLI: return the exit code through RunE and exit once in main
- 31564a2b
- Gate: build the site fixture in the full tier
- 5ae12b5c
- Errors: one sentence per error message
- 43857c57
- Style: one sentence per error, counted by the prose check
- 14b72873
- Gate: fail the full tier on a package coverage drop over 2 points
- 7349a7ef
- Notifications: check divergence with one for-each-ref
- ec3c399e
- Import: decode the milestone update time on both adapters
- 46192cc0
- Git: build the LFS batch URL from a host-only repo URL
- 89b3c412
- Docs: say which URL is fetched and which one matches
- 1a239422
- Review: cover a fork PR whose base spells the upstream differently
- 7c3a0324
- Fetch: hand git the address, key storage by identity
- ba6ae31e
- Lists and forks: store the address, key by identity
- 51ce4936
- S3: parse remote URLs from their canonical form
- bd26282e
- Protocol: make NormalizeURL idempotent
- fc756022
- Site: bump the page version to 26
- 86bff916
- Site: put the error notice under the browser probe
- 9995a2f0
- Site: word every truncation marker as one notice sentence
- 6dfb3959
- Site: give every empty list its own sentence
- ba56c852
- Site: converge the meta row on one skeleton
- 82c91698
- GitHub: decode updatedAt on issues, PRs, releases and discussions
- 5c820a6b
- Testing: a 100k-row thread benchmark behind the bench tag
- fd12b7ca
- Social: pin the thread reader's query plan
- 0a3729a6
- CLI.md: say what a GitLab import now copies
- 632b3907
- GitHub: walk a mapped discussion's comments on re-import
- e93eb541
- Import: build the GitLab adapter from the repository URL
- 04c17f9e
- GitLab: decode updated_at on issues, requests and releases
- 9bc37aef
- GitLab: import issue and merge request notes
- a32755aa
- GitLab: follow the Link header to the next page
- 8a246779
- GitLab: return the error when a page walk fails
- 784e6510
- Retract: cache the retraction commit on the write path
- c1d6f360
- Social: drop the unread SortBy option on GetPosts
- 0b699ae7
- Forks: report removing a URL that is not registered
- d1cb39c2
- Scripts: gate the core import order on the stack sentence
- eb0a63d8
- Prose check: lower the baseline to the counts at 8196b35
- 8196b35f
- RPC: stop calling createPR's base and head required
- aa5bc34c
- Testing: the destructive CLI verbs through the binary
- c2a30a20
- Testing: one round trip per RPC namespace
- 0e1c8e6e
- TUI tests: drop the 80 by 24 known-failure list
- a2587206
- PM board: size the columns to the terminal
- edd847d0
- TUI: keep the footer bar on its own lines
- 9660101f
- TUI: cut the frame title to the top border
- 8c46375d
- TUI: clip every content line at the panel border
- ff44f0cb
- TUI tests: assert every route fits an 80 by 24 frame
- 2ddfd098
- CLI: name every search prefix in the help
- bbac4f9a
- Search: split a query on Unicode space
- f5ba3ba9
- Docs: name every search prefix the parser accepts
- 45e2f730
- Search: keep an unknown key in the free text
- 1c661db2
- Site: recapture the computed-style baselines for the scale
- ad5f92e2
- Site: hold the spacing scale over both stylesheets
- 28adc463
- Site: put every spacing value on a six-step scale
- e655dfc2
- Import: give a discussion comment a stable external id
- 76b987c3
- Import: take the discussion author's profile from the query
- 01e74689
- Import: bring GitHub discussion replies in as replies
- b1507a4d
- Docs: the list key tables match the map
- d70d33ca
- TUI: one key-to-action map for both lists
- 2db93de9
- TUI tests: pin the cursor of both lists under every key
- bb8a729a
- Testing: cover the GitLab adapter over httptest
- ab1158ff
- S3: cover a chain outranking a plain ref key
- e1ab9378
- S3: cover the listing continuation loop
- 19b15b4c
- S3: follow S3 in the local test buckets
- c587beec
- Docs: name core/git's package state in the standing exceptions
- ec7f40ae
- Docs: the push reaches every default remote in every client
- 82c77fed
- RPC: decode siteOnly, full and dryRun on core.push
- 495d379c
- TUI: push to every default remote
- cc2a12ba
- Client: one publish sequence for every remote
- 702e767c
- Git: return the push remote resolution as a value
- 0dc6cf14
- Social: unexport the surface nothing outside uses
- 6a93c651
- Social: read comments through one direct-join reader
- fc11e30d
- Site: bump the page version for the detail head
- 26e49a61
- Site tests: assert the detail head's structure and styles
- 44737f03
- Site: head a detail with one card head in both renderers
- 97ece10c
- Site tests: fence the fixture's suggestion feedback
- 33635609
- Testing: assert the review suggestion write error code
- 7189cc52
- Testing: assert the social error codes
- 7683852b
- Testing: assert the pm error codes
- 88aba08d
- Testing: assert the release error codes
- fbbbc5da
- Testing: assert the proposals error codes
- 95a09b0c
- Testing: share the reftable skip through testutil
- 62620091
- Review: unexport the surface nothing outside uses
- 2c6796e1
- Docs: match REVIEW.md and the guide to the review package
- 00766167
- Review: sweep comments to the style guide
- f3338c14
- Review: name the suggestion error codes in upper snake
- a38493c3
- Review: drop the review query fields no caller sets
- dab849f4
- Review: replace the copies with one form each
- 9fa33a12
- Review: fold verdicts per author in one place
- d46ff322
- Review: count unread notifications through their getters
- 9f12c5a4
- Review: insert review items through one statement
- 33d31324
- Review: enforce require-review at merge
- 958ac2a7
- Review: read the configured branch for branch notifications
- 09554d9a
- Review: resolve a hash with one prefix query
- 66fde6b7
- Review: report a failed dependent retarget
- 5e90da1e
- Review: read a suggestion from its suggestion fence
- 1b70f25a
- Review: count pull requests in one repository
- 3ce9c9db
- Review: fire pr-ready once per draft-to-ready edit
- c8bb864f
- Review: take a pull request head from its own repository
- 2cbfd0b6
- Review: place adopts in the pull request field order
- 4498fb59
- Spec: order adopts and accepts in the pull request header
- aefaf82b
- Client: rebuild the counts when a repository is removed
- c77677a5
- Docs: the counts and the log entry type in SOCIAL.md
- 41596acb
- Social: sweep the package comments to the style guide
- 6e32fdd7
- Social: retire the legacy read and counter tables in one migration
- 754531cd
- Social: order equal-scoring related repositories by name
- 68e4650e
- Social: write the subject and thread fields the spec defines
- 20f15f9a
- Social: delete the surface nothing produces or reads
- dac81065
- Social: take the four hand-rolled helpers from the stdlib
- fd2ba594
- Social: fold the copies inside the package into one each
- 79b037db
- Social: name the notifiable-item predicate once
- bc4e06b3
- Social: write every social commit through one tail
- b6190b6a
- Social: build every item query through one WHERE builder
- 9e08b21a
- Social: mark a follower's posts in a list scope
- fff3f778
- Social: recount an interaction target from its live items
- 2b60827f
- Social: type an activity log entry by its own header
- 2807d887
- Docs: move notifications down the core stack
- 1026eb3e
- TUI and CLI: render the diverged-branch notification
- bd274002
- Core: register the divergence provider from notifications
- 634f772a
- Core: return the processor func type from notifications
- a0059d7c
- Site: one-line two release head test comments
- 3a665105
- Site: bump the page version for the release head
- c2e9d223
- Site: build the lists row's head through cardHead
- 29129553
- Site: head a release with its tag and one version chip
- ae67f012
- Testing: assert every TUI golden fits its width
- daa44a37
- Testing: fuzz the search query parser
- 67b155bc
- Site: bump the page version for the feedback card
- 67e61258
- Site: retire the fb-* classes for the card variant
- b5cd8bf8
- Site: build the app's feedback card through the card builder
- ef8e1a68
- Site: render a feedback reply as a card variant
- 74cb540b
- TUI: unexport the tuicore surface nothing outside uses
- 3303b543
- TUI: name the tuicore files after what they hold
- ad0fea34
- TUI: correct the tuicore comments that describe other code
- 39f81c07
- TUI: delete the unreferenced tuicore surface
- b0bed6b7
- TUI: drop the dead guards in the progress bar and key loops
- 80052c5f
- TUI: format the relative-time date in the local zone
- 8a9a331c
- TUI: hold the tuicore theme state in one struct
- 2e97844f
- TUI: record the reserved extension keys in one line
- bb00c1f4
- TUI: draw the thread anchor's body bold
- 2d341e74
- TUI: fold the duplicated tuicore render paths into one each
- d2ff902b
- TUI: dirty the card list view on a programmatic cursor move
- 15aa726a
- TUI: truncate styled text without cutting an escape
- fda01dca
- TUI: strip the verified icon from every card header field
- aace9cc3
- TUI: measure card height from the rendered card
- 229c7b53
- Search: group every item type by its labels
- c9f49a54
- Search: read enrichment fields from the main query
- e2e9fc78
- Search: sort equal-count groups by name
- 05c799df
- Testing: pin search grouping and formatting
- acfd9aa7
- Testing: assert the review stack and version error codes
- b502fe37
- Testing: assert the memo session and sync error codes
- 05e2dafd
- CLI: say rebuild for the site step in push, remote and mirror
- da78d6e0
- Testing: assert the memo error codes
- a5261767
- Testing: assert the review merge error codes
- 9d465bac
- Testing: build the CLI once per test run
- 8e94b9ce
- Testing: cover the GitHub discussions fetch
- d796fdae
- Docs: say where a review fix lands
- b2119407
- Docs: split the ref push from the site rebuild
- 223f388a
- Testing: fuzz ParseS3URL against its writers
- 0e5f8525
- Docs: match S3.md and the architecture guide to the transport
- 323e2c17
- Objstore: unexport the transport surface nothing outside uses
- b6f362da
- Objstore: drop the thin push's offline pin tier
- ef1addbc
- Objstore: fold the transport's duplicate loops into one each
- 61d48226
- Objstore: count the loose objects a push actually uploaded
- c94651f1
- Objstore: resolve a push's refs through one batch call
- 29427cb7
- Objstore: sign the canonical URI AWS's way
- 450de79c
- Objstore: retry every bucket request inside do
- d0cd6bd0
- Testing: concurrent ExecLocked and QueryLocked
- db9c545e
- Testing: cover the LFS object store and batch API
- 2e023bf9
- Testing: fuzz the protocol and LFS parsers
- 810c8003
- TUI: move the core routable views into library/tui/tuiviews
- ac83792b
- Site: move the static site out of core/objstore into core/site
- 93bbcf48
- Objstore: run post-push site maintenance through a hook
- 2c9b0101
- Objstore: export the transport surface the site layer reads
- f93d0be1
- Testing: shrink the TUI smoke matrix to one pass per view
- 03c5ba50
- Fetch: bound the workspace sync walk to the new commits
- d084cd96
- Git: read --since as a timestamp, not a bare date
- c3183089
- Extensions: delete the per-extension workspace sync
- a9880f80
- Client: CLI and TUI reads sync the workspace through the client
- 4c0a8625
- TUI: move the nav registry out of tuicore into tuinav
- 86e053c1
- Docs: a definition of done in ARCHITECTURE.md
- c7d57a3a
- Docs: the core order, the extension's import cost, the search asymmetry
- f9f334c7
- Docs: one pass over every reference against the style guide and the code
- ab1b6c79
- Style: the long help carries the reference the terminal needs
- d37ed9c8
- Objstore: sweep the static-site comments
- 1752d3ef
- Objstore: sweep the transport and push comments
- ea74f95e
- CLI: restore the reference sections in the help text
- 2edfe95f
- CLI: drop the em-dashes from two help blocks
- 7f5fc6a7
- CLI: lower the prose baseline after the help sweep
- 2c2bf707
- CLI: trim the long help blocks to twelve lines
- 754a21a5
- CLI: rewrite flag help without parentheticals
- c4f102e7
- CLI: bring every command Short under the limit
- 6d2eeb23
- Docs: name the client package in the layer tables
- 2288e84e
- Client: merge the two client packages into one
- 9615270f
- Fetch: take the workspace syncs as a parameter
- 3b28de90
- Site: sweep gs-core.js and gs-upgrade.js comments
- c6e11c09
- Lint: enable funlen and gocognit at today's maxima
- 9278db0a
- Comments: cut the rationale blocks outside objstore
- 89f8b157
- Scripts: gate upward imports and package size
- d5471d8a
- Fetch: drop the date-window options nothing sets
- a6ed0896
- Fetch: collapse the duplicated paths into one each
- 9c2fddab
- Fetch: use git where the package hand-rolled it
- d4455648
- Gitmsg: one keyed synced-tip cache for the five extensions
- 0dc70a66
- Objstore: file each helper on its transport or site side
- c7c38d39
- Site: match a pull request's feedback by hash, whatever the ref type
- e83ad791
- Site: delete dead tests, dead history, and close out the design notes
- 21fa4b00
- Testing: assert computed styles and structure against a real browser
- 36640fdc
- Site: render thread replies as the app's comment cards
- b838d276
- Text: truncate by character everywhere, through one helper
- d5d12936
- Docs: fold the feature process into ARCHITECTURE.md
- 1ffa588b
- Site: match the two subject strippers and strip every promoted subject
- 6b8011ac
- Social: truncate a repost's first line by character, not byte
- dc4edd18
- Site: strip markdown from every promoted subject
- 5ceb1fcb
- Site: render recent activity through the shared card fragment
- 365fbdc8
- Site: drop the wrapper around a headless card's meta row
- 9ef25616
- Site: converge the app's card with the page's card
- afd1f721
- Site: build every card through one function
- 2d039594
- Site: sweep gs-render.js comments to the style guide
- ad666bdc
- Site: head list pages with the nav label and drop the front-page title