All notable changes to wuffle are documented here. We use semantic versioning for releases.
Note: Yet to be released changes appear here.
FEAT
: suggest@me
for all user filters (#193)FIX
: prevent double commit of filter suggestion (#194)
FEAT
: suggestassignee:@me
filterFIX
: avatars get properly cachedFIX
: click on filter suggestion applies it again (#190)FIX
: prevent blank page after login/logoutFIX
: correctly handle connection errors during login checkFIX
: make help menu keyboard accessibleFIX
: turn example config into ES module
DEPS
: update toprobot@13.0.2
DEPS
: update to@octokit/graphql-schema@15
DEPS
: update to@aws-sdk/client-s3@3.525.0
FEAT
: use nativefetch
CHORE
: requireNode >= 18
Node >= 18
is required to run the board
FEAT
: turn into ES moduleCHORE
: correct various type hintsDEPS
: updatefake-tag@5
DEPS
: updatep-defer@4
DEPS
: update toprexit@2
- Refactoring of the code base, exposing services as ES modules
FEAT
: improve guided setup stepsFIX
: correct setup not working due tohbs
missing (#175)FIX
: do not cache setup resourcesDEPS
: update toprobot@13
DEPS
: update dependencies
- Webhook URL changed to
{BASE_URL}/api/github/webhooks
FEAT
: addfifo
column ordering as an alternative to the defaultlifo
DEPS
: update dependencies
FIX
: correct handling of non-http(s) requests in service worker (#161)
FEAT
: supportPRIVATE_KEY_PATH
to supply keyDEPS
: update dependencies
FEAT
: variousa11y
improvementsDEPS
: update dependencies
FEAT
: move issue toneeds_review
column on review request (#156)FEAT
: filter terms in quotes strictlyFEAT
: add ability to provide a default board filterFIX
: slightly adjust scroller padding
FIX
: remove unknown file from eager cache listFIX
: add missing link titleCHORE
: pre-render 15 cards only
FEAT
: preload board configurationCHORE
: remove unnecessaryaria-*
labels
FEAT
: supportissue#state_reason
CHORE
: simplify board descriptionDOCS
: improve various bits of the documentation
FEAT
: make filter available throughctrl + k
FEAT
: show all board filter hints in scrollable containerFEAT
: improve scrollbars + paddingsFEAT
: improve column toggleFIX
: clear mouse on filter changeFIX
: only select hint on primary mouse button clickFIX
: correct filters not hiding on blurFIX
: correct logging of missing permissions/events (#145)
FIX
: do not attach closed, unmerged PRs
FIX
: correct tag contrast
FEAT
: overhaul icons, card, and tag UI (#144)FEAT
: add ability to link issue comments from within a task breakdown (#144)FEAT
: allow PRs to be attached to task break downs (#144)FEAT
: add keyboard shortcuts documentation (#140)FIX
: prevent creation of self-referencing links (#143)
FEAT
: addl
shortcut to toggle loginFEAT
: do not establishCHILD_OF
relationship through deep links (#138)FIX
: gracefully handle missing asset folder indev
FIX
: don't necrobump closed issues on{SOME_NUMBER}-branch
creation (#137)
FEAT
: support@me
in search to reference logged-in user (#133)FEAT
: support relative@today
,@last_week
and@last_month
temporal qualifiers (#134)FIX
: recognize comma in quoted search values (#135)
FIX
: mark app as Node@16 compatible, again
FIX
: correct first time setup (#131)DEPS
: bump dependencies
FIX
: gracefully handle missing assignee
FEAT
: move changes requested collaborator PRs back toIN_PROGRESS
(#128)FEAT
: add ability to auto-assign collaborator PRs (#129)FEAT
: provide way to use existingassignee
filter on PRs (#125)FIX
: react topull_request.converted_to_draft
FIX
: correct avatar sizing
FEAT
: allow customS3_ENDPOINT
to be configured (#127)
CHORE
: improve board API error logging (04015630
)
FIX
: sendreviews
information to the board
FEAT
: addis:epic
filterFEAT
: persist column toggle state in query parameters
FIX
: gracefully handle missingrequested_reviewers
FIX
: sendcheck_runs
andstatuses
information to the board
FIX
: account for absence ofuser
FIX
: account forcomments
being a number in the pastFIX
: sendorder
,column_label
andcolumn
information to board
FEAT
: reduce payload of transferred board data (d76db5c0
)
FEAT
: support GitHub style task breakdowns to create epics (#118)FEAT
: add and remove labels, rather than overriding (#77)FEAT
: color draft PRs differently (e134cb81
)CHORE
: update toprobot@12
FIX
: correct style overrides (milestone style, ...)FIX
: correct board filter not maximizing responsively
FIX
: gracefully handle missinghtml_url
(6651df27
)
FEAT
: synchronize issue comments (#94)FEAT
: display commented in collaborator links (#94)FEAT
: adjust requested for review indicator to match GitHub (7c84c49a
)FEAT
: necrobump issues on commented (070aaffd
)FEAT
: fetch and use GitHub providedhtml_url
for entities (#121)FEAT
: link author avatar to GitHub (72cf233a
)CHORE
: useProbotApp#onAny
(ed1b2248
)DEPS
: bump toprobot@11.4.1
DEPS
: bump dependencies
- Introduction of comments as well as
html_url
requires a full background sync
CHORE
: pushlatest
andnext
tags to docker hub againDEPS
: patch bump dependencies
CHORE
: control published files viapackage.json#files
FIX
: distinguish requested review and commented states for PR participants
FIX
: correctly disable loader interaction if hidden
FIX
: open external project links with rel=noopener
FEAT
: link documentation next to powered by icon
FIX
: allow create issue repository hint selection via mouseFIX
: correct create issue repository hints navigation via keyboard
FEAT
: filter board for collaboratorsFEAT
: apply board filters withSHIFT
/ALT
click modifiers onlyFEAT
: add create issue widget (#65)FEAT
: improve navigation layoutFIX
: workaround Chromium service worker bug (f6d20222
)CHORE
: adjust board filtersDOCS
: document board filters
- Filtering issues on the board via click now consistently requires a
SHIFT
orALT
modifier
FIX
: do not swallow store import errors (#114)CHORE
: improve error logging with context (#114)DEPS
: bump toprobot@11.1.0
FIX
: bump docker file base image to Node@14
FEAT
: implement first time setupFIX
: addmember
permission to app manifestFIX
: correct app default permmissionsDOCS
: rewrite setup guide
FEAT
: allow setup to be executed via app binaryFEAT
: add explicit setup commandFIX
: makemkdirp
a production dependencyCHORE
: use leak free in memory session store
FEAT
: fetch user access repositories with max page sizeFEAT
: rework S3 data dumpCHORE
: bump toprobot@11
(9e4c9339
,cc8ad79a
)CHORE
: require Node@14 (45a335a7
)DOCS
: add missing configuration entries
probot@11
update changes some internal APIs as well as webhook data- Persistent S3 task board storage requires
env.S3_REGION
to be configured - Minimal required NodeJS version is now 14
CHORE
: patch bump dependency versions
FIX
: correct login session not being established during initial app loginCHORE
: add ability to disable background sync using environment variableCHORE
: relax same-site cookie setting
FIX
: correct fetching of authenticated user repositories
FIX
: correct last month temporal filter completion
FIX
: prevent long milestone labels from overflowing cardFIX
: relax secure cookie settingCHORE
: allow to configureTRUST_PROXY
to enable secure cookies
FEAT(events-sync)
: support repository renaming (#102)FEAT(events-sync)
: support issue transfer (#92)FEAT(search)
: addis:milestoned
filter (f6798cf3
)FEAT(search)
: addinvolves
filter (#100)FEAT(search)
: addcreated
andupdated
filters (#98)FEAT(search)
: addauthor
filter (#97)FEAT(app)
: harden session cookie (b16639b5
)FIX(background-sync)
: improve handling of removed repositories (#101, #93, #90)CHORE(app)
: introduce type linting and cleanupevents
API (#96)
- The API of the
events
service changed. For all APIs that take a priority the priority is now the optional, last argument.
FEAT
: supportconvert_to_draft
webhook to move PR back to IN_PROGESS (#86)CHORE
: propagate user-access read errorsCHORE
: back-off periodic checks on error
FIX
: do not fail search on missing assigneesCHORE
: make issue search fail safe
FEAT
: log out user on wuffle once her GitHub access token expiredFIX
: correctly handle invalid issue when updating store
FEAT
: various performance improvements for logged in board access (2fe40483
,de5403da
)FEAT
: use app APIs to determine user repository access (579743a9
)FIX
: account for GitHub API changes breaking private repository display (#80)CHORE
: bump dependency versions
FEAT
: be able to specify default column collapsed stateFIX
: prevent collapsed columns from breaking layoutFIX
: correct collapsed column layout in Firefox
FEAT
: supportconnects
to create parent -> child relationship (#78)FEAT
: add ability to whitelist enabled organizations (#75)CHORE
: add sentry support, inherited from ProbotCHORE
: board update errors with contextCHORE
: ensure the app restores before completing startupCHORE
: serialize board version on store dumpFIX
: do not bumpupdated_at
when synchronizing issue detailsFIX
: correct status sync failure on PR openFIX
: don't swallow changes on concurrent store updatesFIX
: prevent accidental double background syncFIX
: handle deleted forks in pull request filters (2b40281f
)
FEAT
: improve background synchronization of pull request details (#70)FEAT
: make background synchronization configurable via environment variables
FEAT
: recognize full list of GitHub closes keywords (#73)FEAT
: recognize colon in issue links (#73)CHORE
: feat with maximum page size during background sync to avoid hitting GitHub rate limits
Special thanks goes to @mjcarroll for contributing #73.
FEAT
: reindex store on board configuration changes (#69, #49)FEAT
: allow to hook into store restore and serialize
FIX(app)
: deduplicate check runs by name (#66)
FEAT
: integrate pull request checks and statuses (#41)FEAT(board)
: provide better link titles (77cf5b2d
)FEAT(board)
: add limited offline supportFEAT(board)
: improve error handling and recoveryFEAT(board)
: cache assets in front-endFEAT(board)
: make header responsiveFIX(app)
: correct label update (3ff74c22
)FIX(app)
: update card onpull_request.synchronize
, too
- The app requires read access to checks and statuses as well as the connected event subscriptions in order to display pull request states (#41).
DOCS
: align app with project documentation
FEAT
: publish aswuffle
to npmFEAT
: validate presence of compiled board assetsFEAT(app)
: log working directory when startingCHORE
: compile board assets to appCHORE(app)
: resolvewuffle.config.js
in working directory
CHORE(board)
: reduce amount of unused styles
CHORE(board)
: add more a11y hintsFIX
: correctly handle dismissed reviews
FIX(board)
: ensure long card titles do not kill card layoutFEAT(board)
: give card links full prominenceFEAT(board)
: show assignees collapsed and expand them as needed
FEAT(app)
: integrate reviews (#22)FEAT(app)
: pick up milestone edits (#46)FEAT(app)
: pick up label editsFEAT(app)
: allow partial issue updatesFEAT(background-sync)
: add ability to hook up external behaviorsFEAT(background-sync)
: batch update issues (1958c9d3
)FEAT(board)
: hide merged, non-closing PRs from cards (06794aa5
)FEAT(board)
: add numerous UI hintsFEAT(board)
: improve assignee displayFEAT(board)
: slightly adjust board styles, making it more pleasent to look atFEAT(store)
: serialize store updates (a5bdcbe5
)
FEAT(search)
: include login/org in repository searchFEAT(search)
: use includes to filter labels and repositoriesFEAT(board)
: deep link milestone to GitHubFIX(board)
: correct icon sizes displaying wrong in Firefox (#48)
FEAT(app)
: reduce re-ordering noise on the board by card order, if possible (62bea58d
)FEAT(app)
: do not move referenced issues via board (260d1e8a
)FEAT(board)
: provide card link titlesFEAT(board)
: make card link icons and PR / epic icons clickableFEAT(board)
: show blocking links first in listFEAT(board)
: make title read-onlyFEAT(board)
: visualize open required by / closes issues as standard link typesFIX(app)
: only move issues to top that move to new column
FEAT(board)
: make click on issue numbers open the issue on GitHub as the default interaction again (#35)FEAT(board)
: make filtering by issue reference, tag or milestone available asSHIFT
/CTRL
+ clickFEAT(board)
: make consecutive click on reference, tag or milestone toggle the relevant filterFEAT(board)
: escape card dragging onESC
key
DOCS
: add troubleshooting documentDOCS
: document column to state mappings
FEAT(app)
: handle PRs from external like new issues (8e0919d5
)FEAT(app)
: allow alternative column names and explicit state mappings (c2575b32
)FEAT(app)
: validate board configuration (#39)FEAT(app)
: crash on run failure (2d2ac864
)
FEAT(app)
: recognize list of linked issues with the same typeDOCS
: document login callback urlFIX(auth-routes)
: gracefully handle missing cached data in auth callback
FEAT(background-sync)
: ignore archived repositoriesFEAT(apps/dump-store)
: allow usage of local dump store outside dev modeCHORE
: di-ify app core
- We restructured internals and made apps expose their own APIs. Things changed.
FEAT
: connect all repositories connected to GitHub app
config.repositories
is now obsolete- The board does not default to a repository for its name, configure a board name via
config.name
FIX(app)
: capture requested reviewer changes
FEAT(app)
: mark column assorting=true
to incrementally sort cards based on links (#29)FIX(app)
: correct GitHub app manifestFIX(board)
: correctly handle reordering updates
DOCS
: new setup and run guide 🎉FIX
: correct various getting started / configuration glitchesFIX
: validateBASE_URL
in run script
FEAT(board)
: filter by tagsFIX(board)
: de-duplicate attached PR linksFIX(app)
: properly update link sources if linked issue changes (#33)CHORE(app)
: improve start validation and hints
FEAT(board)
: add powered by linkFEAT(app)
: allow searching byref
FEAT(app)
: inverse link related to issuesFEAT(board)
: add ability to filter by issue with dependenciesFEAT(board)
: show epic progress bar and completed count (#27)FIX(apps/search)
: allow more special keys in search
FEAT(board)
: display issue links (#3)FEAT(board)
: display full issue key on hoverFEAT(board)
: add epic icon and links (#30)FEAT(app)
: add new/updated issues without order to column topFEAT(project)
: add docker imageFIX(board)
: allow scrolling while dragging card
FEAT(app)
: add ability to force HTTPS redirectFEAT(project)
: provide pre-built docker images (#25)FEAT(app)
: add run scriptFEAT(app)
: validate environment configuration before startFIX(app)
: expose required information for deleted issuesDOCS(project)
: document environment variables
FEAT(project)
: addProcfile
FIX(dump-store-s3)
: correctly handle inbound dataCHORE(dump-store-s3)
: set dump interval to five minutesCHORE(dump-store*)
: log pre-exit actions and timings
FIX(search)
: recognize_
in search valuesFIX(automatic-dev-flow)
: correct branch issue number globbing
FIX(search)
: recognize dashes search values
FEAT(background-sync)
: update only actually changed itemsFEAT(search)
: addis:{ open, closed, issue, pull }
filtersFEAT(search)
: ignore operators with empty valuesFEAT(board)
: focus board filter onCTRL/CMD + F
FEAT(board)
: complete board filter qualifier values
FEAT(background-sync)
: improve sync performance for closed issuesFEAT(background-sync)
: expire and remove closed issues not updated for 60 daysFEAT(board)
: simplify board filterFEAT(board)
: add initial focus hint to board filterFEAT(search)
: put negation char before operatorFEAT(search)
: support!
to negate a search operatorFIX(dump-store)
: correct store not dumping on exit
FEAT(search)
: add ability to negate search using-
FEAT(links)
: unlink closed, unmerged PRs from issueFEAT(board)
: autoresize card titles on focusFIX(board)
: prevent shrinking of PR and collaborator icons
FIX(board)
: prevent error on card filtering
FEAT(app)
: optimize card fetchingCHORE(app)
: cache boardFEAT(board)
: incrementally render cardsFIX(search)
: recognize colons in search values
CHORE
: numerous error handling and logging improvementsCHORE
: propagate board api errorsCHORE
: recover from background sync failuresFIX
: correctly handle related to linksFIX
: update all (including already existing) linksFIX
: correctly reset org-auth installation cache
FEAT
: remove issues that failed to synchronize during background syncFEAT
: parse and publish issue links
FEAT
: collapse issue and closing PR into single cardFEAT
: add pull request icon
FEAT
: combine front-end and back-end into single appFEAT
: migrate front-end to Svelte and BootstrapFEAT
: dump store on exitFEAT
: add ability to dump and restore store to/from S3FEAT
: enable response compression for public routesFEAT
: add ability to configure board viaBOARD_CONFIG
environment variableFEAT
: minimize amout of stored / transfered dataFIX
: allow moving a card to end of column
FEAT
: show search hints as you typeFEAT
: show incremental / partial search resultsFEAT
: add search by reviewer
FEAT
: hide column labelsFEAT
: display reviewersFEAT
: display all assignees
Initial version.