VSCode Extension Changelog

Kolo consists of a python package and a VSCode extension. This is the changelog for the VSCode extension. To view the changelog of the Python package go here. We recommend using the latest version of the kolo python package and VSCode extension. That way you’ll run the most stable and feature-rich versions

vscode extension version

v2.19.0

2024-04-19

  • Instead of querying the sqlite db every 500ms for the existence of new traces, first check if the sqlite file itself has been modified since we last checked. This should reduce contention on the sqlite file especially in Docker (for Mac/for Windows) setups

  • Rename SerializationError to KoloSerializationError.

  • Numerous refactors to prepare for the upcoming release of Kolo on the web

v2.18.0

2024-02-09

  • Fix display of one-element tuples.

  • Move to Node 18

v2.17.0

2024-01-31

  • Support msgpack traces with tuple, set and frozenset extension types.

  • Msgpack trace data (locals, call args, return values, etc) will now display in the much more familiar pythonic way. True instead of true, None instead of null, and so on – even for deeply nested structures. This is possible thanks to the more advanced encoding we have available in msgpack

v2.16.0

2023-11-12

  • Add menu item to find a trace by trace id

  • Fix a bug where if an old and no longer loaded trace was interacted with, the extension would error with ‘could not find invocation’ even if it did exist in Kolo’s database

v2.15.1

2023-11-03

  • Fix bug where Kolo could not format traces with big integers

v2.15.0

2023-10-24

  • Support reading messagepack from the kolo sqlite database, the storage format we’re in the process of migrating to. To quote from their website: “It’s like JSON, but fast and small”. We like both of those things. Additionally, messagepack resolves a number of serialization issues we’ve been wrangling with using JSON. This change is backwards compatible, so old traces will continue to work. “View raw trace” will also continue working and show a JSON representation of the trace, even if it’s stored in messagepack format.

  • Improve the error message kolo outputs when it cannot construct a complete frame tree to make it easier to debug the issue.

v2.14.0

2023-10-09

  • The kolo split view experience has been improved:

    • All views available via the Kolo sidebar now open in your currently active editor, rather than defaulting to opening a new editor to the side. Some views (currently just the Visualization and the SQL Query Overview) can also be opened in a split view experience via a new menu item.

    • In a few places Kolo provides links/codelenses that let you jump to a location in the code (such as the Visualization, frame span info vdocs, or the sources of SQL queries in the SQL Query Overview). Those links will now always open to the left or the right of your currently active editor, so that you can view the code and also retain the context of the Kolo view you came from. This is mostly the same behaviour as before, but significantly more reliable.

  • In some cases when clicking on a 500 Exception in the Kolo sidebar, Kolo would open both the line of source code where the error happened and open a vdoc with the exception backtrace. Opening the source line was rather brittle and would often fail, so we’ve removed that part for now.

v2.13.0

2023-09-29

  • The flame graph has been rebuilt using <canvas> instead of <svg>, making it substantially faster to render and interact with. This is particularly noticeable when viewing traces with a large number of frames.

v2.12.0

2023-09-13

  • Add basic support for showing django templates in the frame sidebar and in the visualization

  • Hide frames captured when django creates its test database and runs migrations. Similarly to previous exclusions, these frames can add quite a lot of clutter and are typically not what you’re looking for when e.g. using kolo run python manage.py test or kolo run pytest

v2.11.1

2023-08-21

  • Fix bug where children counts were not updated in the case of frame post-processing filtering out certain frames.

v2.11.0

2023-08-17

  • Hide frames captured during django setup and django checks. These frames can add quite a lot of clutter and are typically not what you’re looking for when e.g. using kolo run

v2.10.0

2023-08-17

  • Improve SQL Query formatting for databases other than Postgres

v2.9.0

2023-07-17

  • Build Kolo against node 16 (previously was node 14)

v2.8.1

2023-07-17

  • Strip recorded empty SQL queries (e.g. Model.objects.none()) which were preventing the SQL Query virtual document from opening

v2.8.0

2023-07-17

  • Fixed a performance issue that occurs when the SQL Query virtual document is opened. Opening this vdoc is now much faster for a trace with a large number of SQL queries

  • Show call and return line numbers in compact tree representation

v2.7.0

2023-05-24

  • Add “Generate test” to the right-click context menu to make it easier to generate a test from a trace without needing to leave VSCode

generate test and context menu

v2.6.1

2023-05-03

  • Fix a bug where no user frames are captured alongside a 500 exception

v2.6.0

2023-04-21

  • Add a new menu item on traces to generate a compact tree representation

v2.5.0

2023-02-23

  • Add right-click command on traces to copy the trace id to clipboard

  • Add right-click command on traces to view the tree representation of the trace in JSON

  • New django-powered backend for handling sign ins and api keys

v2.4.0

2023-01-07

  • Improve the sidebar display of non-request traces

Before (left) vs After (right)

image image

v2.3.0

2022-12-18

  • Make it possible to delete one or more traces in the sidebar (via right-click / context menu)

v2.2.2

2022-11-19

  • Fix an issue where inlay hints were not immediately updated when selecting another trace

  • Fix an issue where line ending characters (LF) were displayed in the inlay hint

v2.2.1

2022-11-08

  • Fix an issue where in the latest vscode version (1.73.0), the Visualization would not load due to a change in how VSCode expects local scripts and styles to be loaded and what CSP settings need to be set at a minimum.

v2.2.0

2022-11-01

  • Standardise formatting of function return values.

  • Show None, True and False as python values, instead of json null, true and false.

  • Add support for data format refactors in version 2.2.0 of the Kolo python package.

v2.1.3

2022-10-22

  • Fix a bug where the visualization would not load if a log_message existed as a child of a sql_query

  • Include sourcemap with bundle to improve debugging experience

v2.1.2

2022-10-17

  • Strip newline characters out of response and exception previews in the sidebar.

  • Alphabetise request and response headers.

v2.1.1

2022-10-07

  • Backwards compatibility for next python release which refactors how we format locals to avoid double encoding JSON

v2.1.0

2022-09-20

  • Improve experience working with unprocessable traces

    • No repetitive toast every 500ms due to the “latest” traces being unprocessable

    • A full page of 10 traces will be displayed even if the time span covered by the page includes an unprocessable trace (unprocessable traces continue to not be displayed)

      • When paginating through history, it’s possible to continue paginating even when encountering a full page of unprocessable traces

  • FrameSpan Navigation improvements:

    • When clicking on SQL query in the visualization, the SQL query is revealed in the sidebar as well as in the sql query vdoc

    • Each frame span and sql query in the sidebar have a new button to jump straight to the call site

The "Go to call site" button in the Kolo sidebar

  • The framespan vdoc has a new “Show in sidebar” codelens that reveals the current framespan in the sidebar

The "Show in sidebar" codelens in the framespan vdoc

v2.0.0

2022-09-09

  • ✨ Major ✨ refactor of the way Kolo builds up trees of frames

    • Adds support for kolo run, the @kolo.enable decorator, and the with kolo.enabled() context manager

    • Display of nested served HTTP request, which is particularly useful when looking at a trace of a test that makes requests using Django’s test request client

  • Drop support for frames that were captured using use_frame_boundaries=False (use_frame_boundaries=True has been the default since version 1.7.0 of the kolo python package)

  • Add a right-click menu item on the trace to view the raw JSON data of the trace

v1.21.0

2022-07-12

  • Logs 📜! Kolo now shows you everything that was logged in each trace 🙌

v1.20.2

2022-07-11

  • Fix processing exceptions in use_frame_boundaries=True traces

  • Make sure that a processing error in a single trace doesn’t render Kolo unusable

v1.20.1

2022-06-29

  • Fix an issue where the timestamp of a trace was parsed incorrectly resulting in the incorrect relative time being displayed

v1.20.0

2022-06-28

  • Prepare extension for new data model that accounts for traces which do not strictly start with a served HTTP request and do not strictly end with an HTTP response

  • Fix a number of bugs where the extension would error if a request body is null

v1.19.1

2022-06-19

  • Fix issue where the sun chart visualization would not load for traces with a very large number of frames

v1.19.0

2022-06-12

  • The “Replay request” functionality which was previously only available on the top level trace is now also accessible via the perhaps more suitable “Request” section

The "Replay request" button in the "Request" section

  • Adjusted the internal URIs of some of the virtual documents we open (request/response) to be more consistent. If you’ve already opened the request of a given trace as a tab, and you click to open it again, it will now jump to the already open tab instead of opening a new tab.

v1.18.1

2022-06-08

  • Fix bug where it would sometimes take two clicks on a node in the visualisation before the corresponding file was opened

  • Cache the formatted SQL query document, so that it opens more quickly when we’ve previously put in the formatting work

v1.18.0

2022-05-29

  • Refactor how the sqlite database is accessed for improved reliability and to prepare us for the adoption of SQLite WAL mode

v1.17.3

2022-04-29

  • Fix bug where if we didn’t capture the user_code_call_site for any of the captured SQL queries, the whole visualisation wouldn’t load

v1.17.2

2022-04-25

  • Make sure prebuilt sqlite binaries include both glibc and musl for linux users

v1.17.1

2022-04-25

  • Upgrade to v5.0.5 of node-sqlite3 which should fix kolo not starting up on linux

v1.17.0

2022-04-24

  • Right clicking on a frame span in the “Frames” tree in the sidebar will now let you directly open the pane that shows information about call, return, and locals information. Previously you could only access this pane by clicking on an inline codelens

  • The frame span pane now includes navigation links which let you easily navigate to the parent and children of the current framespan.

v1.16.0

2022-04-15

  • The frame visualisation (otherwise known as the sun chart ☀️) now includes SQL queries to give you insight into where your code is interacting with the database

v1.15.0

2022-04-15

  • Inlay hints show inline return values when Kolo has them available and when it is reasonably sure that the provided value is correct

  • Upgraded to version 5.0.3 of the sqlite3 package – please let us know if you’re seeing sqlite related errors as of this release!

v1.14.0

2022-03-28

  • Prefix the VSCode commands that Kolo provides with “Kolo: ” to make them easier to find

  • When navigating between frames (via either the sidebar or the tree visualization), default to going to the call location (as opposed to the return location)

v1.13.0

2022-03-20

  • Add experimental kolo.populateFrameSpanTable to store frame_spans in separate table and power the “Function examples” feature

  • The frame visualisation will now highlight the node in which an exception happened in red (if that exception then caused a 500)

  • Fix syntax highlighting issues when viewing call or return frame data, now that the jupyter language id is no longer natively supported by VSCode

v1.12.0

2022-02-28

  • There is now a toggle to hide and show the flame graph below the tree visualisation

  • The Kolo powered virtual document that shows information about call and return frames (as well as their local variables) now includes code lenses that help you easily jump to the call and return locations in your code

v1.11.0

2022-02-18

  • The frame virtual document has been tweaked to show information from both call and return frames

  • The language of the frame vdoc is now set to jupyter as opposed to javascript, which results in several syntax highlighting improvements

  • When the return value in the frame vdoc is valid JSON, then it will now be pretty-printed

v1.10.0

2022-01-15

  • Indicate which SQL queries are duplicate in the “SQL Queries made” view

A duplicated SQL query in the "SQL Queries made" view

v1.9.1

2022-01-01

  • Fixed a bug where opening the file/line where a SQL query was made led to “file not found” errors, because the kolo.pathToKoloDirectory setting was not respected. Thanks to @court-js for the report 🙇 https://github.com/kolofordjango/kolo/issues/11

v1.9.0

2021-12-07

  • The frame visualization now includes a ✨ beautiful ✨ flame graph that shows timing information for each function call ⏱️

The flame graph below the frame visualization

v1.8.0

2021-12-03

  • Show where in your code each SQL query originated

A SQL query with a link to the user code that generated it

  • Fix bug where in some cases it was impossible to interact with leaf nodes in the tree visualization

v1.7.0

2021-11-03

  • Support for custom request descriptions so that you can easily distinguish different requests even if they arrive at the same path

Custom request descriptions for a stripe callback

v1.6.0

2021-10-29

  • Increase the number of recent requests shown from 5 to 10

  • Add pagination to look over requests older than the last 10

v1.5.1

2021-10-27

  • Ensure Kolo can run on Apple Silicon

v1.5.0

2021-10-25

  • Read Kolo data from .kolo/db.sqlite3 instead of from the OS specific user data directory (to become the default soon). More details here: https://github.com/kolofordjango/kolo/issues/8

  • Added the “Path to Kolo Directory” setting which specifies the path to the .kolo folder (☝️) as well as helping Kolo understand at which place to open files. Particularly useful if you’re using Docker or if your VSCode workspace does not contain the .kolo directory at the top level

v1.4.1

2021-10-2

  • Update dependencies

v1.4.0

2021-10-18

  • Add section in sidebar with quick links to documentation and Discord

v1.3.0

2021-09-30

  • Add support for replaying HTTP requests ⏪

A video showing how to replay a HTTP request

v1.2.0

2021-09-16

  • Much improved support for ✨ exceptions ✨ Jump straight to where the problem occurred and see the all the contextual information to understand why it happened

An exception trace in the vscode sidebar


An exception trace in the bottom bar

v1.1.3

2021-09-12

  • Improve the UX of selecting a frame from the visualization

    • Clicking on a frame in the visualization will now open the code in such a way that you don’t have to manually re-arrange tabs to continue exploring

  • Fig bug where an invocation wouldn’t load if we couldn’t find a corresponding HTTP response for an outgoing HTTP request

v1.1.2

2021-08-18

  • Bundle the extension code, leading to faster startup time and a smaller overall download size

  • Include additional sqlite bindings for better support across Linux, Windows, and macOS (including support for Apple Silicon)

v1.1.1

2021-08-11

  • Add link to this changelog to the VSCode marketplace page: https://marketplace.visualstudio.com/items?itemName=kolo.kolo

v1.1.0

2021-08-11

  • Quite a number of UX improvements

    • The selected invocation is now highlighted in the Kolo sidebar demo of selected invocation And the button to “unselect” an invocation is now right next to the selected invocation

    • A new icon in the Frames header to signal that clicking here will open the Frame visualization

    • When clicking into the frames (and thus opening the related code in the editor) the related invocation is automatically selected, showing the inline locals/return value codelenses

  • The latest request captured by Kolo is now automatically selected

    • This automatic selecting can be disabled/enabled via the circular button at the top of the sidebar automatically selecting latest invocation

v1.0.7

2021-08-01

  • Made onboarding experience a little smoother by ensuring you return to the right VSCode window

  • Support for VSCode remote workspaces (GitHub Codespaces)

v1.0.6

2021-07-30

v1.0.5

2021-07-26

  • Copy improvements to make the onboarding flow a little bit more smooth

v1.0.4

2021-06-08

  • Fix storage path used in Windows, which caused Kolo to be broken on Windows

v1.0.3

2021-06-04

  • Introduce setting for specifying the kolo project name (counterpiece to KOLO_PROJECT_NAME in the python package)

v1.0.2

2021-06-02

  • Include pre-built versions of sqlite package for linux and windows

v1.0.1

2021-06-02

  • Improved the tooltip in the frame visualization

  • Improved onboarding copy and flow

v1.0.0

2021-06-01