Repository navigation
Releases: ericdahl-dev/jira-green
Releases · ericdahl-dev/jira-green
Release list
v0.1.1
Changelog
- 071f55f docs(ui): namesAssignee comment matches its rule
- eb09267 feat(model): a column named like a blocked label turns the card red
- b4d24c1 fix(config): Waiting shows only tickets updated in the last 90 days
- 3d5ac0f fix(config): loosen Code Review and UA defaults to 3d yellow / 7d red
- 69b133b fix(ui): Done cards show no age
- 6acb481 fix(ui): only Waiting cards name their assignee
v0.1.0
Changelog
- c8e623d build: drop Windows from releases
- 3f2d70b build: pin bubbles to the v0.21.1 tag
- 105b952 docs(ui): help explains the transition and mute keys
- 93b616e docs(wizard): note the existing-file pre-check is only an early warning
- cef16ad feat(alert): pause stuck alerts while the board is stale
- 78a60a9 feat(alert): stuck events carry incomplete and decode_errors
- ec8a9e3 feat(alert): stuck webhooks ported from coolify-green
- 62db7bb feat(alert): surface webhook failures on the status line
- ae64dcf feat(config): Waiting lane includes unassigned issues
- 91b875a feat(config): load, validate, token resolution, mutes
- bfde0b7 feat(config): merge threshold defaults per column
- f8bb4b3 feat(config): reject unknown config keys
- e0d8c28 feat(config): warn when config.toml is readable by others
- dffcd9c feat(jira): board config, boards, changelog, transitions, fields
- f911bde feat(jira): client transport, time, errors, myself
- 75b1c58 feat(jira): search with pagination and issue conversion
- a046b2e feat(model): age thresholds
- 85567b3 feat(model): board layout and epic grouping
- 73682ee feat(model): evaluate card health
- 8d6bc49 feat(model): issue types and time in status
- f918c2f feat(model): stoplight
- 1451526 feat(model): unanswered mention detection
- 0586b03 feat(poller): Backlog lane for my issues outside the open sprint
- 8a387e4 feat(poller): epic progress as done/total child counts
- cc535aa feat(poller): lanes, changelog cache, stale, auth stop, backoff
- e851d61 feat(poller): roll subtasks up to their story's epic
- 3f839f0 feat(poller): scope Mine and Done to the board's saved filter
- caea365 feat(ui): Backlog lane, collapsed by default
- 5cb43a3 feat(ui): dashboard navigation, view toggle, done, refresh, open
- 471c2a2 feat(ui): detail pane and transition picker
- 476fd31 feat(ui): detail pane cleanup and open errors
- 9929429 feat(ui): epic progress in list group headers
- a46fa9f feat(ui): kanban renderer with golden tests
- 0ee65cf feat(ui): list renderer grouped by epic
- daf9233 feat(ui): manage marks cards under a muted epic
- 233a004 feat(ui): manage screen for muting
- 21ca163 feat(ui): scroll kanban, list, and manage to keep the cursor in view
- 8785a39 feat(ui): status line says last good after a failed poll
- 960609a feat(ui): subtasks name their story
- cb154df feat(wizard): interactive init
- 977c9db feat: main routes init and reports config and token errors
- b689db8 feat: remember the last view in state.toml
- 2af2b00 feat: tag the status line unscoped when the board has no filter
- 2fe56a3 feat: wire dashboard, poller, alerts, transitions
- 6257203 fix(config): Create refuses to clobber, atomically
- 1cb0754 fix(config): DefaultPath returns an error when there is no home directory
- c53b216 fix(config): SetMuted rolls back the mute list when the save fails
- 9c8be42 fix(config): WriteStarter says already exists, surfaces Stat errors
- eb34bd0 fix(config): drop literal token, fail on unset token_env, time out token_command
- c1a47c9 fix(config): guard Muted with an RWMutex so SetMuted can race the poller
- c192c52 fix(config): save atomically with mode 0600
- ed394fa fix(config): validate intervals, email, https site, and threshold order
- 59906d1 fix(jira): decode fields one at a time; mark undecodable issues stale
- 933c19c fix(jira): escape issue keys, strict Time parsing, 1xx is an error
- 76ca01f fix(jira): fetch the rest of truncated comments
- e2b7084 fix(jira): guard pagination against loops and runaway servers
- 677fbf3 fix(jira): only 401 stops polling
- cd1475e fix(jira): parse Retry-After dates; default 429 backoff to 60s
- a2114a3 fix(jira): summarize Jira error bodies
- 9ad2fbb fix(model): ParseAge rejects zero durations
- 656f844 fix(model): hide only Done-lane cards, not the whole last column
- 8201973 fix(model): lane light and count reflect only visible columns
- 52371c2 fix(model): no mentions when my account ID is unknown
- fe91e45 fix(model): one reason per label, clamp future ages, safe String()
- 359fe02 fix(poller): Start emits no snapshot for a poll cut short by cancel
- aa37bcf fix(poller): a 429 or 401 on the comment fetch fails the poll; cache comments
- 716760d fix(poller): a failed board refresh keeps the cached columns
- 2fa6109 fix(poller): non-blocking Refresh replaces the raw refresh channel
- 9f12328 fix(poller): one bad changelog degrades only its card
- ae1f787 fix(ui): 401 status says to fix the token and restart
- 56f3abe fix(ui): a nil openURL defaults to OpenBrowser
- dff6700 fix(ui): collapsed list Backlog row shows its worst light
- c007c75 fix(ui): detail names an epic with no summary by its key
- 592fd5d fix(ui): every view fits a terminal 1-6 lines tall
- 693c46d fix(ui): manage screen takes the terminal size
- 1004fc6 fix(ui): picker clears the last error when a new confirmation starts
- 90856ce fix(ui): picker ignores a late transitions reply
- 367bd7a fix(ui): picker says esc is disabled while a move is in flight
- 9a853b1 fix(ui): renderer review fixes, zero lane counts hidden
- d21961f fix(ui): stale and token-rejected status segments are colored, not dim
- a43cb59 fix(ui): the narrow-terminal fallback keeps the selected card
- e984125 fix(ui): transition picker fits the terminal width
- d9c1d59 fix(wizard): validate before replacing on --force
- 6b6da3f fix: review minors across jira, poller, and alert
- be8d815 fix: review minors in config, wizard, and ui
- d131c43 refactor(config): drop NewStarter; the harness calls New
- 300c5eb refactor(config): keep only user-written keys, resolve defaults on read
- 4d5a71f refactor(main): pass ui.OpenBrowser to the dashboard explicitly
- 6b4666a refactor(model): Card.Incomplete replaces the data-incomplete reason
- b86b991 test(wizard): --force keeps the old file when Jira fails
- 72d0c92 test(wizard): use a reserved example domain for the old config