đ v1.9.1
Little Changes
- Updated the âcopy keyâ function (in the task detail view & in Power Hover) to copy the key with a hyperlink attached, so it appears as a clickable link when pasted into a rich-text document.
- Added an empty state to the saved search view to make it clear when a saved search doesnât have any tasks that meet the search criteria.
- Tweaked the label and component searches to match the userâs query exactly rather than using a fuzzy match.
- Fixed an issue where leading and trailing spaces would be trimmed too aggressively from the search input.
- Fixed a bug that was preventing users from selecting the title of a task in the Task Detail view.
đď¸ v1.9.0
Big Changes
- Added headers to the sidebar sections for better visual grouping. Youâll now see âSaved Searchesâ above any searches you have, âProjects & Reposâ above projects, and a new âGetting startedâ section đż.
- In the âGetting startedâ section of your sidebar, youâll see a few new suggested searches. Click on an item to see search in action, and try saving it for quick access to your tasks!
Little Changes
- Added activity from tasks youâre following to the Activity Page.
- Fixed a bug where the userâs sidebar project selections were forgotten after going through the Jira Cloud re-auth flow.
- Increased the max width of board columns to provide a little more breathing room on large screens.
- Tweaked the new task view so the âAre you sure you want to discard this task?â confirmation doesnât appear if the form is pristine.
- Adjusted the layout of the New Task view so long descriptions arenât covered by the âSaveâ button in the footer.
- Fixed the finicky âclick outside to closeâ behavior of our menu component.
- Fixed a bug that caused changing assignees from one person to another to fail.
- Fixed a bug that caused tasks to disappear from the sprint board if Balsa Build was left running for more than 30 minutes.
- Added support for
component:bar
in the search bar, to allow querying for tasks that have the given component. - Fixed a bug where the emoji for task created and task completed activity would change unexpectedly.
đ v1.8.0
Big Changes
- The Activity page is here đ! You can now see PR review requests, recent comments on tasks youâre assigned, progress on tasks youâve created, and more, all in one view. Itâs a great place to catch up on work. Find the âActivityâ link in the top of the sidebar to check it out.
- Weâve added the ability to edit saved searches, after creating them! Hit âEdit search queryâ on any Saved Search, and youâll be taken to a new âquery composerâ where you can preview the results of your updated query.
- Weâve also added a requirement that users have a valid login to use Balsa Build. You will now be prompted to reauthenticate if your session expires (every 90 days). You can read more about authorized sessions on our Privacy page.
Little Changes
- Added support for
label:foo
in the search bar, to allow querying for tasks that have the given label. - Added a âShare Balsaâ action in the sidebar & the Help menu, to make sharing Balsa with co-workers and friends easier.
- Fixed a bug that caused us to hide the Jira task âComponentâ field from showing in the task detail view.
- Fixed a bug that was preventing the creation of new Epics.
- Added better display logic when truncating long project & repo names in the sidebar.
- Update the copy of the activity menu button in the task detail view to properly represent the state of the selected activity types.
- Fixed an accessibility bug that was preventing certain sidebar actions from being keyboard navigable.
- Fixed an issue where remote-searching on GitHub from the search bar would include incorrect repo filters.
- Tweaked the label in the Links panel for describing tasks in an epic, to reduce confusion with subtasks.
- Fixed a layout issue when displaying long search strings in the âWeb searchâ links at the bottom of results in the search box.
Under the Hood
- Adjusted our fetching strategy on startup to improve relevance of synced Jira tasks.
- Added support for the
updated
clause when searching with JQL for Jira issues, to narrow our sync focus to tasks that have been updated since our last sync. - Improved our client-side logging of errors and crashes.
đ§âđ v1.7.1
Little Changes
- Added a brief hold to the end of onboarding, to ensure that sufficient tasks and projects are synced before loading the âMy Tasksâ view.
- Swapped the âCreatorâ and âAssigneeâ fields in the side panel for Jira tasks, to better match user expectations.
- Fixed a bug that caused some search queries to break the search box for the rest of the session.
- Added UI to indicate when an error has occured in a particular view.
Under the Hood
- Fixed a bug that was throwing errors when attempting to render a pie chart with a zero denominator.
đŽ v1.7.0
Big Changes
- Added the ability to associate an Epic when creating a new Task.
- Added an activity feed for GitHub tasks in the task view! You can now see a list of historical task activity alongside any task comments, similarly to Jira tasks.
Little Changes
- Removed the âcompletion progressâ pie chart icon from non-sprint board views.
- Fixed a bug where we werenât scrambling user content for task activity in demo mode.
- Fixed a bug that was preventing status icons from rendering in certain situations.
- Added matchers to ensure that some new custom task statuses weâve seen in the wild lately get displayed with proper icons in Balsa Build.
- Added links to the pseudo-breadcrumbs in the title bar when viewing a board in a project.
- Fixed a bug where HTML entities in task descriptions were being escaped in list & board views.
- Added a small icon to the title area of the task detail view to indicate the taskâs type (for Jira tasks) or review status (for GitHub PRs).
- Improved error handling across the app, to keep things responsive and usable even when errors occur.
- Added search support for âsprint:currentâ to allow querying for tasks that are in an active sprint.
- Added search support for âepic:TEST-40â to allow querying for tasks that are within the given epic.
- Added a link to our Search 101 document to the search bar, as well a rotating list of suggested searches to help familiarize you with our search syntax.
- Raised the ceiling of search results returned in the search bar from 10 to 50.
- Changed the âsave this searchâ button in the search bar from a cryptic icon to text, for better visibility.
Under the Hood
- Prioritized Jira board and sprint API fetches in the sync engine to help fix missing sprints and boards.
đżď¸ v1.6.2
Little Changes
- Updated the descriptive text that accompanies our âTelemetry & crash logsâ UI for opting into and out of analytics, since weâre now collecting a small amount of non-anonymized data. Weâve also added a new Privacy page to our support site that details our privacy practices & commitments: https://support.balsa.com/privacy.
- Fixed a bug where the âSave & Closeâ button in the task creation flow could be clicked multiple times to create redundant Jira tickets.
- Refined our iconography for unassigned Jira tickets to make it more clear which tasks are unassigned in a list or board view.
- Updated the icon for the âAdd Commentâ button in the task detail view.
- Fixed a regression that was causing the Enter & Esc keys to not behave as expected when a modal window was focused.
- Fixed a spooky bug where empty âghost sourcesâ would sometimes appear in the âProjects & reposâ settings pane.
𦢠v1.6.1
Little Changes
- Fixed a bug that caused window chrome not to render on Windows.
đ v1.6.0
Big Changes
- Bumped our version of Electron to include a fix for an issue with Letâs Encrypt DST Root CA X3 certificate expiration. This caused new users (or users with previously invalid settings files from 1.4.0) to become stuck in the sign up flow.
- Added the ability to select any project when creating a new Jira task, and added âNew taskâ buttons to a bunch of existing views.
Little Changes
- Fixed a bug that was causing GitHub onboarding to get stuck on domain input.
- Updated our user-agent to be more friendly for Jira Server setups.
đ v1.5.0
Big Changes
- Added an Activity feed to Jira tasks! đ You can now see a list of historical task activity alongside any task comments â or filter to only show comments or activity. GitHubâs task activity will be incoming soon!
- Balsa Build now crawls task descriptions & comments for links and includes them in the Links panel đ. This allows us to show links between tasks in Balsa Build across Jira and GitHub, and paves the way for even more tool integrations in the future!
- Added more fine-grained controls when selecting which projects to display in the sidebar in Settings. You can now select or deselect all projects in a source, or filter large lists of projects to find the projects youâre most interested in.
Little Changes
- Improved searching by returning results from partial matches as you type (e.g. the query âTEST-1â will now return task TEST-101, whereas before it would not have returned task TEST-101 until you completed the whole term âTEST-101â).
- Fixed a bug that was causing the app to crash when zooming the UI in or out.
- Fixed a bug where selecting or deselecting projects in Settings could corrupt the settings file in some scenarios, forcing the app to reset into a clean state on the next launch.
𼎠v1.4.0
Big Changes
- Added the ability to drag-and-drop tasks to change status on the My Tasks board view, as well as on Saved Search boards. This works just like dragging tasks on the Project view - if multiple statuses apply, youâll be able to pick which status youâd like upon dropping the task. Weâve been calling this drag-and-drop everywhere internally!
Little Changes
- Fixed a bug that caused boards to fail to load. This was due to an unexpectedly null value as part of task statuses in certain Jira set ups. Thanks to Drew and Tommy for reporting this doozy!
- Fixed a bug that caused task titles with HTML tags to render incorrectly in boards, lists & task detail views.
đŞ v1.3.1
Little Changes
- Updated the âresponsive syncingâ code introduced in
v1.3.0
to include re-syncing for GitHub tasks as well. - Tidied up display of linked GitHub tasks in the Links panel of the task detail view.
- Fixed a bug that was causing some tasks to be unexpectedly greyed out in list and board views.
Under the Hood
- Fixed a bug that was causing some tasks to be stuck in a partially-synced state, which could result in a crash in the appâs front-end.
đ v1.3.0
Big Changes
- Improved the freshness of Jira task data by triggering immediate re-syncing of tasks that the user access directly in the app. This, in turn, results in the re-syncing of other items (projects, linked tasks, sprints, etc.) related to the user-viewed task, helping us allocate our syncing resources to the items most immediately relevant to the user and ensuring data freshness for those items.
Little Changes
- Improved the clarity of our app icon on Windows.
- Added the ability to search by sprint or board name, like
sprint:"Week of 2021-09-06"
or board:Kanban
. - Fixed a bug in our search code that only checked the first source when searching by person.
- Fixed another bug in our search code that ignored all matches beyond the first when searching by project.
- Improved our in-app modals to respond as expected when hitting the Enter or Escape keys.
Under the Hood
- Improved the stability of the tools we use to keep data fresh.
- Updated the client to not request data from the server when the app is hidden or minimized.
đď¸ v1.2.1
Little Changes
- Fixed a bug where you would sometimes be sent to My Tasks when clicking on a task.
- Fixed a bug that caused you to be taken to a taskâs detail view when changing its status from a list view.
đ v1.2.0
Big Changes
- More Jira ticket details are here đ! Previously weâve only shown a subset of available fields. Now youâll find a more robust list in the Task detail view info panel. Click on the âShow more fieldsâ button to see fields like âLabelsâ, âComponentsâ, and any other custom fields you have like âStory Pointsâ.
- A list of all files attached to Jira tickets can now be found in the task detail view. The newest files are listed in the Information panel, and a new Attachments panel has been added to display the full list of attached files.
Little Changes
- Updated the panel on the righthand side of the Task detail view, adding an animated transition between the different panes and adding some logic to persist the state of the panel between views.
- Added Epic relationships to our links support. Theyâll now show up in the Links pane like all other Jira relationships! đ
- Added a button to the Settings page to manually trigger the re-authentication flow if youâre using Jira Server.
- Fixed a bug that made links in the task details panel non-interactive depending on the panelâs scroll position.
- Improved the styles for a handful of in-app links to improve accessibility and affordance.
- Fixed a bug where the app could display an empty view on the first load after an app update.
- Fixed a bug that was causing emojis in saved search names to be rendered far too small.
Under the Hood
đ v1.1.0
Big Changes
- Tasks can now be dragged between columns in a board view to update their statuses. Re-ordering tasks in a column is not yet supported, but stay tuned.
- We now collect and verify your work email address during onboarding. This enables us to offer company-specific features weâre planning in the future. In total honesty, itâs also an important step for us as a business, since we need to keep track of user accounts in order to someday charge for our service.
- Weâll now remember the last board/sprint/list you viewed on each project, and bring you straight to it on subsequent visits. Also, weâll launch the app to the last screen that you viewed before quitting.
Little Changes
- Added an option to view saved searches in a board layout.
- Fixed a pair of bugs that were preventing us from properly syncing Kanban boards and sprints from âsimpleâ type Jira boards.
- Fixed a bug in our user-mentions code that was causing certain Jira mentions to not render properly.
- Added a âTroubleshootingâ submenu to the Help menu and moved the âShow Log Filesâ option inside. We also added a new âReset Settings and Restartâ option here, which should make it easier to get unstuck if things go awry. Use with caution!
- Fixed a bug where we were failing to surface sync errors in the UI đ.
- Introduced a setting to manually toggle the appâs appearance between dark mode & light mode.
- Upgraded our markdown parser to automatically linkify new task descriptions and comments written in Balsa Build.
- Fixed a bug where file attachments in Jira ticket descriptions and comments would render as plain text; they will now render as links to the file.
- Solved a problem where certain emoji would render as text representations when used as icons for Saved Search views.
- Fixed a bug that caused relative time strings like â1 week agoâ to display incorrect values.
- Updated our styles to display
inline code
better in task titles & descriptions. - Updated the pile of faces visible in Task rows to include the task creator & commenters.
- Sprinkled a bunch of helpful tooltips onto buttons & other UI components.
- Added a âBalsa Build Help Centerâ option to the âHelpâ menu that links to the help center.
- Added âJoin Us on Twitterâ and âSend Us an Emailâ options to the âHelpâ menu so users can easily contact us.
Under the Hood
- Fixed a bug where non-JSON responses (such as unauthorized Jira Server responses) were not being properly handled as errors, which prevented our re-auth mechanism for Jira Server from being triggered.
- Renovated our virtualization code for scrolling list views to improve performance and fix some intermittent visual bugs.
- Fixed a bug in our âDemo Modeâ code that was causing blocks of mixed text & HTML to be rendered badly when demo mode was active.
⥠v1.0.0
Big Changes
- Introducing âSaved Searchesâ! These are live-updating lists of tasks that you can personalize and pin to your sidebar for easy access. Theyâre a quick way to build your own custom views, and they support all existing search filters. To get started, pop open the search bar, search for something (like
creator:me
), and hit the â+â button in the lower right corner. - The settings view has received a makeover đ
đž! The entry point remains in its previous home at the bottom of the sidebar, but settings now opens in a separate window where related options are grouped into individual tabs.
- You can now customize which projects show up in your sidebar from the new Settings view đ! Gone are the days of writing project names in a textarea, or manually editing
settings.json
; enabling projects is now as easy as toggling a switch. - We totally rewrote our core syncing technology! The new sync engine is smarter and less resource-intensive. In the short run, that means you no longer need to specify which projects to sync. In the long run, it unlocks all sorts of possibilities weâre excited about, including someday showing relationships across all the tools you use. đ
Little Changes
- Updated the GitHub setup flow to pre-fill the necessary scopes when generating a Personal Access Token.
- Fixed a link in the GitHub setup flow to help users connecting to both cloud and on-premises GitHub instances properly generate a Personal Access Token.
- Fixed a syncing bug where sprints would still appear as âactiveâ even after theyâd been closed.
- Added a new power hover action and task view menu item so you can quickly copy the task key. The task key is either the Jira ticket number (PROJ-588) for Jira tasks, or the pull request number for GitHub tasks (balsa/desktop#824).
- Fixed a bug that caused missing task types in the task detail view.
- Added support for highlighting the task key and name text in the task detail view so you can quickly copy and paste either.
- Fixed a bug that resulted in task update errors not being propagated to the client.
- Fixed a focus-state bug in the task detail viewâs overflow menu.
- Limited the app to one active instance.
- Fixed a bug that caused strikethrough formatting to be added incorrectly in some situations.
- Fixed a bug that caused the search bar to stop working during vigorous searching.
Under the Hood
- Improved syncing of user settings behind the scenes to increase app performance.
- Added telemetry for OS name and version, locale, screen size and density, and the size of our Sqlite database, and new events for when the app is focused, blurred, and closed.
- Fixed a bug with GitHub request failure retries. Now we will retry GitHub requests on a wider variety of errors and with smaller page sizes.
đ˝ v0.14.0
Big Changes
- You can now add tasks to sprints! Do this by clicking the current value for âSprintâ in the right column when viewing a task in the task detail view.
Little Changes
- Added a button to clear the text in the search box.
- Fixed a bug that caused searching for numbers not to work.
- During setup, the project picker is now sorted alphabetically by project name.
Under the Hood
- Fixed a bug where we would incorrectly assume Jira Cloud customers with
.jira.com
domains were using Jira Server. - Changed our renderer process logging infrastructure to use labels for all log events.
đ v0.13.3
Little Changes
- Improve our task status matching functionality to display the correct icons for more custom Jira statuses.
- Keep the task comment box open if a draft is present.
- Fixed a bug where the search bar would remain open even after the user had tabbed away.
Under the Hood
- Change the order of Jira syncing to prioritize loading My Tasks first and things like project boards later in the sync cycle.
- Use database journal mode Write Ahead Log to help improve database write performance.
- Improve renderer performance by memoizing several expensive variable calculations.
- Adopted Relay as our ORM on the renderer side, to improve app-wide caching & prefetching performance.
đ
v0.13.2
Little Changes
- Added Jira task creation errors to our sync indicatorânow when a task has an error during ticket creation weâll show you the error in the sync indicator. Thanks for bringing this one to our attention, Ben!
- Fixed icon alignment for our add comment button.
Under the Hood
- Added priorities to our Jira source sync. These priority levels now sync at different cadences which will help lighten the network and processing load in our Jira source.
- Temporarily removed schema validation from our Jira source endpoints. The library we were using was causing very slow app performance so while we migrate to a new one weâre disabling this extra safety check.
- Laid the backend foundation for adding and removing tasks to sprints. Stay tuned to see this functionality in the product soon!
đ§Ż v0.13.1
Under the Hood
- Added a temporary feature flag to disable fetching linked Jira tickets while we reevaluate our link syncing strategy to avoid generating excessive requests.
đ v0.13.0
Big Changes
- Jira ticket commenting is here! Sending a quick reply or explaining the complexity of a task is just a â + Return away!
- Added support for Jira ticket relationships. Now in the task details page we will display all Jira tickets the task is connected to. Stay tuned for lots of exciting future developments in this area.
Little Changes
- Fixed a long-standing issue where scrollbars in the app would be rendered as light-mode scrollbars even when the userâs OS-level preferences specified that the app should be displayed in dark-mode. This oneâs for you, Jo!
- Fixed a search parsing bug to allow searching for terms that include
or look like a url. This means you can now search the app for Jira ticket ids, like BUILD-707
, or full urls, like https://github.com/balsa/desktop/pull/1268
. - Refined our GitHub PR statuses so that PRs you open will now start off in the In Progress state. Letâs give you some credit for the work you did to get the PR open!
- Simplified and improved the task filter button to make it more intuitive to use.
- Added Porter stemming to our full text search index which will allow us to match search queries on their common word roots. For example, searches like âstemâ or âstemmedâ will now match âstemmingâ.
- Fixed a bug to add back our beloved knurled divider to our task boards.
- Fixed a bug in our handling of simple Jira boards. This may have caused Jira boards to not show up in our app if simple Jira boards were present.
Under the Hood
- Fixed a bug in our Cookie copying code for Jira Server which caused some Jira Server auth setups using specific
SameSite
configurations to fail to authenticate. - Added better error handling and additional error logging in our Jira syncing code. This will help us debug better in the future and propagates more sync errors to our app Sync Indicator.
đ v0.12.0
Big Changes
- You can now use text search to search through your synced tasks! You can use word terms as well as filters like
assignee:me
or unassigned
.
Little Changes
- Fixed a bug where inactive Jira users would be displayed in the list of potential assignee options even though they cannot be assigned a Jira ticket.
- Removed subtask types from the type options in Jira ticket creation as they are not yet supported. Theyâll be reintroduced when we support them in the future!
- Fixed a bug with epic Jira ticket creation. Now the name you provide for the ticket will also be included as the epic name on Jira.
- Added support for syncing current and future sprints that donât have tickets in them yet.
- Changed the behavior of the next/previous scroll buttons in boards. The buttons are now hidden by default but appear when you mouse close to them.
Under the Hood
- Laid the backend foundation for Jira ticket relationships. Stay tuned to see these in the product soon!
- Added support to enqueue pending task and comment creation on start up. This helps us avoid missing syncing pending changes if the app is quit shortly after making those changes locally.
- Fixed a bug where in certain race conditions we could overwrite pending local task or comment changes.
đŞ v0.11.2
Little Changes
- Redacted
Authorization
headers in sync logs. Thanks Thom for flagging this! - Updated our handling of Electron windows to open all windows on the monitor youâre currently using. Erica, this one is for you!
- Simplified our Browser View handling code. We caught some unintended side effects in this component that could cause Cookies to be unexpected wiped during the on boarding or re-authorization flows.
Under the Hood
- Added support for creating, editing and deleting Jira comments on the backend - stay tuned for this feature in the UI!
- Prepped our Task View side panel and button components for the forthcoming Jira links feature.
- Added a limit to our tasks search query. This is in preparation for our text search feature.
- Extended our Jira schema to accept undefined project category descriptions. This is not a documented accepted value, but we saw it in the wild!
- Updated our handling of Jira board ranking to default to last updated sort order if board sort order is not provided by Jira.
- Added a prototype of a new sync source approach that would allow us to sync continuously.
𩹠v0.11.1
Little Changes
- Fixed a bug that was causing some buttons to render with maximally bad contrast (white text on white background).
Under the Hood
- Fixed a bug that caused Jira Server authentication to fail in some situations.
âď¸ v0.11.0
Big Changes
- Added column-style board views for sprints and project boards! You can switch between list and board views using the subview icon in the top right corner.
- You can now update the status of Jira tasks by clicking on the status icon in the list view!
Little Changes
- PRs you created will now show up in My Tasks, since youâre working on them!
- Moved the âreview statusâ indicator for PRs in list views, and added better tooltips to distinguish between PRs reviewed by you and PRs reviewed by others.
- Tweaked the look of our task type icons a bit.
- Fixed a bug where GitHub.com users couldnât change their API keys due to the GitHub domain field being blank.
- Fixed a bug that caused default values for new tasks to not be retained.
Under the Hood
- Virtualized the task list. This should make loading times much faster as you click around in Balsa, and should improve scroll speed as well.
- Began prefetching the data for My Tasks and project views, which should improve first-load performance for these screens.
- Changed our Jira Server login process to copy all known cookies, which we hope helps us correctly identify when youâve logged in. (Previously, we would sometimes get stuck on a logged-in Jira screen.)
- Fixed a bug that caused part of each network log to be lost.
- Fixed a bug that prevented Segment from initializing correctly. (Analytics are only sent if you enable âShare telemetryâ in settings or during onboarding.)
đ v0.10.0
Big Changes
- Added task creation! You can create a Jira task by navigating to a project and clicking the â+â icon in the top right corner of the app.
- Shipped Balsa Build for Windows! If you have a Windows machine and would like to run Balsa Build on it, now you can.
Little Changes
- Approved but unmerged PRs that youâve personally approved will no longer appear among your active tasks. They now appear below, along with your completed tasks. Their icons are green to indicate Approved state. (If youâve approved a PR, but someone else requested changes, itâll still show as Open.)
- Fixed a bug that allowed people to leave their email or Jira API token blank during setup, which would cause syncing to fail.
- Fixed the GitHub sync setup modal on Windows. Previously it opened the main UI in the new window, instead of the GitHub setup screen.
- Loosened validation for Jira API tokens, so we can accept tokens provided by Jira Server plugins.
- Fixed the colors on the âEmail usâ button that shows up when there are errors during setup.
mailto:
links now open correctly using your system email client. The âEmail usâ button actually works again!- Tweaked the layout of the Settings screen a bit.
- Added tooltips to Epic labels.
Under the Hood
- Began syncing Jira agile boards. These arenât surfaced in the UI yet, but weâre cooking up something⌠đ¤Ť
- Changed how we handle schema changes in our Sqlite database. Now, when we change our schema, we recreate the database from scratch. This should make setup a tiny bit faster, and database migrations less error prone. You may see a brief empty state when you upgrade the app, as we re-sync your data into the new schema. We aim to do this infrequently!
- Improved error recovery during Jira setup, so we can still attempt to sync in situations where we canât confirm the Jira deployment type.
đ¨ v0.9.1
Little Changes
- Fixed a silly bug where GitHubâs thumb reactions showed up as opposite in Balsa Build - a thumbs up in GitHub became a thumbs down in Balsa Build!
- Added the ability to lazy load Jira Cloud users who are mentioned in ticket descriptions.
- Fixed a bug where GitHub comments that did not include any emoji reactions would be suffixed with a
0
. - Added support for GitHubâs new API token format.
- Increased the accepted length for Jira API tokens to accommodate a Jira Server plugin that provides API tokens.
Under the Hood
- Only use our custom Balsa Build user agent for POST requests to specific Jira endpoints.
- Separate sync engine and server process logs into separate files.
- Accept undocumented
null
priority from Jira. - Added a previously unknown
deleted
field to the schema for Jiraâs myself
endpoint.
đŹ v0.9.0
Big Changes
- Added comments into the Task detail view for Jira tickets and GitHub PRs, including reactions on GitHub comments.
- Fixed a nasty bug that was preventing Jira Server users from reauthorizing, essentially stopping the app dead in its tracks once their initial auth cookie expired.
- Refactored our GitHub sync engine to reduce overall data load, avoid rate limits, and automatically retry on failures.
- Added proper tooltips to explain all of the various bits & bobs in the Task row component.
- Reworked the app menus in our little-known Windows build to be more idiomatic for the OS.
- Updated the default Balsa Build window size to 1200Ă800.
Little Changes
- Tweaked our color scheme for dark-mode users so drop-shadows stand out more and the app has a little more depth overall.
- Reworked the layout of the Task row component to work better for narrow window sizes.
- Adjusted our Task âpriority gaugeâ component to be green instead of red for medium-priority tasks, thus making the whole app less super aggro.
- Tweaked our switch component to use a white handle even in dark-mode, for better contrast.
- Fixed a pair of bugs that was causing Task type & status to display incorrectly in the sidebar of the Task detail view.
- Fixed a Windows bug that prevented the app from quitting fully when the last window is closed.
- Fixed a visual bug when displaying a user avatar that failed to load or doesnât exist.
- Fixed a bug that allowed videos in the body of a task to overflow their content area.
- Added hover & focus styles to better differentiate internal links & controls from links to external sources.
- Added some nifty warming/cooling logic to our tooltip component to cut down on UI stutter as users mouse around the app.
- Updated the app-menu copy when downloading an app update copy: fewer typos & fewer floating decimal points.
- Fixed a visual bug with the accepted/confirmed/selected Task status icon.
Under the Hood
- Fixed a hilarious sync engine bug involving Jira projects with keys that look like boolean operators, such as
AND
and OR
. - Added a menu item to open developer tools for the internal server process for debugging purposes.
- Added even more logging to help us track down increasingly obscure sync errors with exotic Jira Server configurations.
- Adjusted the logic for parsing our
settings.json
file to be more tolerant of unexpected fields on launch, resulting in fewer unexpected errors. - Fixed a bug in our long-standing, under-nurtured pre-pre-beta Figma integration that was preventing Figma documents attached to Jira tickets from displaying as expected.
đ v0.8.0
Big Changes
- Updated our GitHub settings UI & syncing code to support syncing from GitHub Enterprise in addition to github.com, and to allow more specific per-repository or per-organization sync rules.
- Added a proper onboarding flow to walk users through connecting to their GitHub account.
- Added an item to the appâs âHelpâ menu to easily open Balsa Buildâs logs in the file system.
- Added a bit of UI to the onboarding flow & settings view that prompts user to automatically send us anonymized telemetry & crash logs. These settings are opt-in, and the data collected will help us understand usage patterns & identify edge-case bugs.
- Updated the app icon! Itâs a square now, and our pretty logo stands out a bit more.
Little Changes
- Updated our task status icons to more clearly represent a taskâs lifecycle. These new icons also include some âspot colorâ elements to help them better stand out from the background in dark-mode.
- Highlighted pending & in-progress tasks in list views by dimming out completed tasks.
- Added a button to quickly copy a link to the current task from the action menu in the task detail view.
- Fixed a bug that was preventing Jira tasks from appearing in the âMy Tasksâ view for Jira Server users.
- Enhanced our sync engine to ensure that a taskâs associated Epic will always be loaded, even if it falls outside our normal time window for sync.
- Updated our internal logic so a GitHub PRâs author is no longer included as an assignee if they submit a review or comment on their own PR.
- Fixed a bug in the sync indicator that was surfacing GitHub connection errors even though the user had never connected their GitHub account.
- Fixed a dark-mode bug where the filter field in menus was displaying black text on a black background.
- Updated the PR âlines changedâ gauge to properly display GitHub PRs where zero lines have changed (they exist!).
- Fixed a bug that was preventing in-app Jira re-authentication flow from loading properly.
- Removed the decorative âeditâ button from the task detail view. This button will return once we add support for editing tasks directly in Balsa.
Under the Hood
- Refactored how we handle statuses of GitHub PRs so they show up properly in filter menus.
- Rewired the âMy Tasksâ view so it can be used even when the app is started in offline mode.
- Added proper versioning to the appâs
settings.json
file, so we can safely update the fileâs schema without losing user data between versions. - Fixed some âsilent errorâ cases where the sync indicator wasnât displaying Jira sync errors properly.
- Updated the sync engine to sync comments from Jira tasks and GitHub PRs. Comments will be added to the task detail view in the near future!
- Fixed a bug with the sync engine that was causing multi-request jobs to be pessimistically canceled upon failure of a single child request.
- Disabled an internal caching layer to ensure that GitHub data is always fetched fresh.
- Added a grip of new log lines to the Jira Server onboarding flow, to help us track down inconsistencies and bugs when we encounter novel auth proxy setups.
đ v0.7.0
Big Changes
- Added support for GitHub! Input an organization and a Personal Access Token in the Settings view to sync your Pull Requests as tasks.
- Added an actions menu to the upper right of the Task View, with an option to open the current task in your browser.
- Added a âsuper hoverâ action to list viewsâhold
cmd
or ctrl
while hovering over a task row to reveal quick âopen in browserâ and âcopy link to clipboardâ actions. - Implemented global back/forward navigation arrows in the app sidebar.
Little Changes
- Removed the version number badge from the app sidebar, to make room for navigation buttons. Your appâs version number can still be found in the OS-level âBalsaâ menu.
- Added a loading spinner to the task detail view.
- Added breadcrumbs to the Task View, to quickly jump to a taskâs associated Epic.
- Fixed a horizontal overflow bug in the Task View header, and added code to allow GitHub PRs to truncate from the left to preserve the critical information at the end of the string.
- Fixed a bug that allowed images in the body of a task to overflow their content area.
Under the Hood
- Refactored how we store sources, paving the way to allow syncing multiple sources of each type.
đââď¸ v0.6.1
Little Changes
- Improved robustness of the sync indicator by adding the ability to query for the current sync state. This eliminates the case where the sync indicator fails to display if it connects after the sync has begun.
- Increased performance of the sync engine by scaling down the Jira source to only sync projects that are selected or have tasks associated with the user.
- Raised HTTP request network timeout to better accommodate slow sources.
â v0.6.0
Big Changes
- Added a menu for applying simple filters to project list views.
- Added new user flows to help resolve task updates that have failed their projectâs validation or transition rules, including an in-app browser view for Jira Server instances.
Little Changes
- Fixed a bug in the sync engine that resulted in the UI sometimes displaying multiple assignees for a single Jira task.
- Improved our initial sync strategy to speed up the onboarding process by reducing the amount of external data fetched before projects are selected.
- Added proper support for grouping queries with parentheses in our internal task search interface.
Under the Hood
- Even more polish for GitHub sources! Weâre polishing our little hearts out and excited to release this feature soon.
- Fixed a bug where any log calls in Balsaâs main process would cause the application to crash, preventing users from completing the onboarding flow in certain cases.
đ v0.5.3
Big Changes
- Added a Jira reauth flow that can be launched by clicking on the disconnected status on the sync indicator.
- Added the offline status to the sync indicator.
- Fixed a race condition on application start up where the âMy Tasksâ view would fail to load if the app had not fetched the userâs Jira ID yet.
Little Changes
- Added a trigger to sync immediately when coming back online and retry requests on network error.
- Refreshed various UI icons and added a nice fallback color for Jira epics.
- Fixed âselectedâ status matcher to correctly match the âSelected for developmentâ status with its icon.
- Fixed sidebar overflow issue to stop clipping the focus state of the links and allow the list to scroll off the bottom of the sidebar.
Under the Hood
- Continued polish for our Github source support. Added support for multiple assignees, Github flavored markdown, and PR id numbers. Stay tuned to see this in the product soon!
- Added support to fetch and persist Jira task comments. Stay with us to see these pop up in the task detail page in the future!
- Added basic telemetry and crash reporting data collection support to the backend. These both default to off and are not exposed through the preferences page or setup flow yet.
- Disabled Electronâs
nodeIntegration
mode in the renderer process, which drastically reduces the applicationâs security surface against things like XSS attacks. - Updated our GraphQL schemas to return better lists of task statuses and people for specific projects, allowing our âeditâ menus to be more accurate
- Persist the taskâs remote URL to the taskâs additional fields for both Jira and Github.
- Fix search query support to support
OR
queries and searching for unassigned tasks. - Fetch and store Jira task priorities as a full object, allowing the âpriority gaugeâ in the task row to display more accurately regardless of how many priority levels your organization uses.
đ v0.5.2
Bug Fixes
- Fixed a problem with an erstwhile dependency that was causing a crash in the server process, thus preventing the app from launching properly.
đ v0.5.1
Big Changes
- Improved performance significantly when viewing the Task detail view.
Little Changes
- Fixed a bug where our version number was missing from our User Agent string.
Under the Hood
- Laid the foundation for our Github source support. Stay tuned!
đą v0.5.0
Big Changes
- Added a sync-status indicator to the bottom of the app navigation sidebar. This element shows when the sync engine is running, and will eventually be used to surface errors encountered when syncing.
Little Changes
- Updated our auto-update system to check
releases.balsa.com
instead of a hardcoded AWS bucket. - Relaxed our Figma API token validation to accept longer API tokens.
Under the Hood
- Shored up & improved a bunch of our internal task-searching logic in preparation for the upcoming addition of list-view filters.
đ˝ v0.4.1
Big Changes
- Added the ability to update task statuses from the task detail view. Note that this feature does not yet support complex transitionsâthis is coming soon!
Little Changes
- Introduced a new icon for tasks with the âblockedâ status.
Under the Hood
- Added a proper user-agent for sync requests made to remote servers.
đ
v0.4.0
Big Changes
- Replaced the âAll Projectsâ view with a âMy Tasksâ view, aggregating Jira tickets assigned to you across all of your teamâs projects.
Little Changes
- Fixed a bug that was preventing links in task descriptions from being linkified in certain edge-case situations.
Under the Hood
- Fixed a bug in our internal API setup that was causing us to lose proper logging for network calls between the UI and the sync engine.
đĽ v0.3.12
Big Changes
- Added the ability to reassign tasks from the task detail view, using a brand new searchable dropdown component.
- Added a step to our sync process to purge outdated tasks from the local database, so tasks that have been deleted remotely donât stick around locally for more than five days.
Little Changes
- Fixed a bug in the main app sidebar code so overflowing project lists are scrollable.
- Improved our baseline formatting when rendering rich text in task descriptionsâwe now render bold, italic,
strikethrough, subscript, superscript, and lists correctly (including nested lists!). - Fixed a bug in our task description rendering code that was mistakenly displaying strikethrough text at the beginning of a new line as a bullet point.
- Updated the label style in the task detail sidebar to put more emphasis on the content and less emphasis on the labels.
Under the Hood
- Refactored our task-editing code to ensure that tasks can be reassigned in both Jira Cloud and Jira Server environments.
- Fixed a bug in the appâs internal API pipeline that would cause an unrecoverable error during initial Jira authentication flow.
- Refactored parts of our build process to accommodate Windows builds. We donât have a working build to distribute yet, but stay tuned!
đ v0.3.11
Big Changes
- Added Jira project icons to the sidebar to make each project more recognizable at a glance.
Little Changes
- Various improvements to the Jira formatting options that we support within the task description page. Some are only behind the scenes for now like mentions and lists, but others like codeblocks and strikethrough are visible in the UI.
- Added new focus style for unbounded objects. See it in action in inline links.
- Fixed a bug in the project-selection setup step that was causing specific projects to maintain their disabled display state even when the âAll Projectsâ switch was enabled.
- Fixed a bug that was causing an aggravating 1px horizontal scroll issue in the task view sidebar. Waggle no more!
Under the Hood
- Added the ability in our API to search for specific tasks. This is behind the scenes work for now, but itâs going to power a lot of our UI going forward. Stay tuned!
- Added several subscriptions that publish information regarding the sync status varying in granularity from the sync engine is running to specific network requests made.
- Added network timeouts to our HTTP requests so network calls will not hang indefinitely.
- Added an extra cache layer to improve rendering performance on downloaded images such as user avatars and project icons.
- Refactored our internal API resolvers to make it easier to expose new data to our UI going forward.
đ§ v0.3.10
Big Changes
- Updated our app ID to our final product name, Balsa Build. This will, unfortunately, break auto-updates for all existing installations.
- Removed the command-line flag added in
v0.3.9
to activate âdemo modeâ and replaced it with an option in the appâs View menu that can be enabled or disabled while the app is running. - Adding additional project fields to our list of synced data, including project avatars.
- Fixed a bug in the setup flow that was causing herky-jerky transition animations between steps, especially on systems with always-visible scrollbars.
Little Changes
- Added spiffy new icons for the DMG installer file.
- Added a percentage-downloaded indicator to the app menu when a new version is downloading in the background.
- Fixed a bug that was causing the Jira login flow to be unexpectedly resurrected after being completed, for teams with only one Jira project.
- Fixed a memory leak in our user-avatar component.
- Improved the obfuscation code in âdemo modeâ to prevent runaway memory usage.
Under the Hood
- Refactored the code that handles app-level user settings, to provide a stronger and more consistent model for sharing settings between app processes.
- Updated a bunch of dependency libraries, including a number of upstream security fixes.
- Moved even more English strings that we missed in
v0.3.9
into a centralized file. - Refactored our app-level menu code, to allow for more dynamic menu content.
đ v0.3.9
Big Changes
- Reordered the task list view to be sorted by last updated date, descending.
- Added a command-line flag to launch the app in âdemo modeâ, obfuscating all user content to avoid potentially leaking sensitive information during screenshare demos.
Little Changes
- Fixed a bug where the last-updated date for tasks was not syncing properly.
Under the Hood
- Improved syncing logic to coalesce matching sync requests, reducing our overall network burden.
- Centralized all English strings to a single file, to help us keep things consistent app-wide and set ourselves up for easier translations down the line.
- Added a persistent
Accepts
header to our Jira client to reduce errors when syncing.
đ¨ v0.3.8
Big Changes
- Loosened the validation on the Jira base URL setup step to allow user input that includes path components or does not include a protocol component.
- Added extra validation to the Jira base URL setup step to attempt to verify the existence of the given base URL, as well as the type & version of the Jira software running at that address.
- Updated our app-wide color palette so that all rendered text and non-decorative visuals meet WCAGâs AA contrast standards in both light and dark modes.
- Added an animated status badge to asynchronously-validated form fields, to indicate working, success, & failures states while the field is being validated.
Small Changes
- Recolored the Epic labels in the Task Row component to align with the colors used in Jira.
- Updated the background âstageâ area in the cookie collection setup step to no longer be always white. This element will now reflect the userâs light/dark mode preference like the rest of the UI.
- Added the task status of âopenâ to our mapping, so tasks with this status will show an appropriate status icon.
- Fixed a visual bug where projects with zero synced issues were not rendering a pie chart icon.
- Fixed a bug where users would be unable to complete their organizationâs authorization requirements due to an unexpected browser redirect.
- Fixed a bug where navigating backwards into a previously-completed cookie collection setup step would result in the user being immediately moved forward again.
- Fixed a bug in the Project Switchboard component where individual projects were being rendered with the wrong initial state in some situations.
Under the Hood
- Continued to fill out our internal Jira schemas as we discover inconsistencies between various versions of their cloud & on-premises platforms.
- Removed an outdated log-collection mechanism from the setup flow that had been superseded by more robust logging systems in the meantime.
đ§ââď¸ v0.3.7
Bug Fixes
- Updated our internal schema to properly handle a bunch of fields on the Jira task object that are usually required but can be manually hidden by Jira admins.
đ v0.3.6
Bug Fixes
- Fixed a bug in our Jira response-parsing code that was causing fatal errors when encountering unexpected fields on projects.
đŠď¸ v0.3.5
Improvements
- Upgraded our network stack to narrow the gap between user-driven requests to a Jira server and Balsa-driven requests to that server.
- Added maximally robust logging for network requests (minus sensitive data, of course) to improve our ability to understand & debug problems when attempting to navigate arbitrarily complex internal auth structures like the ones weâve encountered during testing.
đż v0.3.4
Improvements
- Untied some knots in our sync-queueing logic, so initial post-auth sync requests should behave more predictably and reliably going forward.
- Added real task creation & updated dates to the UI, replacing the random for-placement-only dates that were being used previously.
- Simplified the project-selection step of the setup flow to reduce confusion. The list of projects is now always visible, and the interaction of individual projects with the âAll Projectsâ switch has been simplified for clarity.
- Added logic to skip the project-selection step of the setup flow entirely if we find the account only has one project.
Visual Tweaks
- Swapped the FPO project avatars in the project-selection interface with empty color swatches, until we can get real project avatars added.
Bug Fixes
- Fixed a bug where tasks with a status of âTo Doâ were showing the incorrect status icon.
- Fixed a sneaky bug in the cookie-based Jira auth flow where a listener was sticking around too long, resulting in unnecessary subsequent auth attempts.
- Fixed a flagrant bug in the cookie-based Jira auth flow that was causing the UI to hang indefinitely when faced with an unexpected document type in response to an auth request.
đŚ v0.3.3
Improvements
- Updated to a more rigorous strategy for detecting a successfully authorized session with Jira Server instances. We also now support non-standard cookie names & non-standard redirect paths.
- Extended task syncing for Jira issues. We now sync up to 500 tasks from your selected projects, plus up to 500 additional tasks that you have created, been assigned to, or interacted with.
- Filtered the project links in the global sidebar to reflect your selected projects only.
- Updated the project links in the global sidebar to include the project short label. Also, the accompanying pie chart icons now reflect the completion percentage of tasks in each project.
- Added a trigger to always attempt a full sync immediately when you update your Jira settings.
- Added a queue to ensure cached pending changes (resultant from a crash or a transition from offline to online) are properly applied before the next sync.
- Replaced the for-placement-only âAlphaâ epic label with real epic labels in Task Rows. Theyâre all still purple for the moment, but stay tuned.
Visual Tweaks
- Added a fallback to display initials for users without avatars.
- Cleaned up some incipient icon soup in the Task Details sidebar.
- Added
SF Mono
to our monospace font stack for all the Apple typeface absolutionists out there.
Bug Fixes
- Fixed a bug in the sync engineâs internal API that was causing us to sync the userâs project list too often.
- Fixed an inconsequential but irritating bug where the ânewâ and âfilterâ icons in the top right of the app would shift slightly when navigating between the All Projects View and an individual Project View.
đŁ v0.3.2
Improvements
- Added additional high-level logging for our backend processes, to assist in debugging with Alpha users.
Bug Fixes
- Loosened validation of Jira API responses to reduce frivolous errors when encountering novel server configurations and object fields.
âľ v0.3.1
Improvements
- Added proper file logging for our backend processes, for better diagnosis and debugging.
- Added smart port selection, so the appâs internal server will always run on an unused port.
- Updated the package name so logs & such will appear in the expected places in
~/Library
.
Visual Tweaks
- Adjusted the Jira API token collection step of the setup flow (for Jira Cloud instances) to be easier to follow.
Bug Fixes
- Fixed a field validation that was causing sync to fail with Jira Server.
- Fixed a bug with the setup UI that was causing controls to be unclickable in certain situations.
đď¸ v0.3.0
Improvements
- Add a âfirst launchâ setup flow to walk new users through the process of providing Balsa with credentials to access Jira on their behalf. This setup flow supports Jira Cloud instances with API token auth and Jira Server (âon-premâ) instances with cookie-based auth.
- As the final step in the setup flow, we now also allow users to enable or disable syncing on a per-project basis.
- Updated the underlying mechanics of user preferences to make them more resilient to external editing and improve app boot performance.
- Added additional triggers to kick off initial sync, which should drastically shorten time-to-first-sync when adding or updating Jira credentials.
Bug Fixes
- Fixed a bug in the sync engine that was causing sync jobs to fail after the initial boot job in certain scenarios.
đđžââď¸ v0.2.3
Improvements
- Overhauled the Settings view to use a new unified form field component, with better accessibility, usability, and input-validation rules.
- Added a proper ârelative timeâ value to Task Rows for the task creation date. Note that this is currently displaying randomized FPO dates.
- Added validation for Jira API responses, to reduce unexpected output.
- Added code to prevent text-selection in most areas of the app, to make it feel less like a webpage.
Visual Tweaks
- Added proper hairline borders to buttons & form fields for high-dpi devices.
Bug Fixes
- Fixed a bug where image files dragged into the app would be displayed & prevent the user from interacting.
âď¸ v0.2.2
Improvements
- Wired up the status icon, type icon, and priority gauge to show real data in Task Rows and Task View.
- Rearranged information in the task rows to better highlight the âtask typeâ icon.
- Removed the task creator from the face-pile in Task Rows.
Visual Tweaks
- Added hover & active styles to links in the app-nav sidebar.
- Updated the app-wide âfocusâ state to include a hairline dark blue outline, to improve legibility in low-contrast contexts.
- Updated the app-wide âfocusâ state to appear only on keyboard-focus, not on click-focus.
- Updated the gear icon for âSettingsâ to have seven teeth instead of eight.
Bug Fixes
- Fixed a bug where HTML tags werenât being stripped from task descriptions in Task Rows.
- Fixed a bug where text in input fields was impossible to read in dark mode.
- Fixed a bug to ensure that the button that expands & collapses the Details Panel in the Task View remains right-aligned even when the panel is expanded.
đŁ v0.2.1
- Fixed an issue where the server process was not properly starting in production builds
- Fixed an issue where the server window was not properly closing on quit
đ v0.2.0
- Updated the overall look and feel of the app to match our alpha design language
- This includes our app chrome, task lists, task detail view, and settings view
- Migrated datastore to SQLite with a GraphQL interface, and added support for offline use
- Upgraded to Electron 9 (Chrome 83)
- Added support for Jira Server (on-premises Jira)
- Updated app icon to use the new company logo
- Renamed the app from âProject Dashâ to âBalsaâ đ