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
v2.25.0¶
2024-12-23
Support new trace format which will be the default for Kolo python version v2.35.0 onwards (threading by default with sys.setprofile and sys.monitoring)
v2.24.2¶
2024-11-12
Improve usage analytics
v2.24.1¶
2024-11-04
Fix a bug where due to a change in 2.24.0,
Truevalues were being displayed asFalsein certain contexts.
v2.24.0¶
2024-11-01
Support for sys.monitoring events in VSCode (yield, resume, throw, unwind).
v2.23.3¶
2024-07-22
Fix bug causing outdated version notice to show even when Kolo is up to date.
v2.23.2¶
2024-07-15
Update all JavaScript dependencies.
v2.23.1¶
2024-07-11
Fix bug with collecting usage statistics
v2.23.0¶
2024-07-04
Show update notice in sidebar if the Kolo version in the latest trace is out of date.
Collect anonymous usage statistics (only if the VS Code telemetry setting is enabled).
v2.22.0¶
2024-06-25
Link to the Kolo webapp from VSCode in the top navbar and for generating tests
v2.21.1¶
2024-06-14
Remove an internal guide that accidentally ended up in the public README.
v2.21.0¶
2024-06-14
Fix issue with trace deserialization stuck in an infinite loop, by switching from
msgpackrtomsgpack-es.
v2.20.0¶
2024-05-20
Provide an option to manually set the kolo API key via the kolo.manuallySetApiKey command
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
SerializationErrortoKoloSerializationError.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,setandfrozensetextension types.Msgpack trace data (locals, call args, return values, etc) will now display in the much more familiar pythonic way.
Trueinstead oftrue,Noneinstead ofnull, 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 testorkolo 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
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)
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,TrueandFalseas python values, instead of jsonnull,trueandfalse.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_messageexisted as a child of asql_queryInclude 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 framespan vdoc has a new “Show in sidebar” codelens that reveals the current framespan in the sidebar

v2.0.0¶
2022-09-09
✨ Major ✨ refactor of the way Kolo builds up trees of frames
Adds support for
kolo run, the@kolo.enabledecorator, and thewith kolo.enabled()context managerDisplay 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=Truehas 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=TruetracesMake 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

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_sitefor 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.populateFrameSpanTableto storeframe_spansin separate table and power the “Function examples” featureThe 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
jupyterlanguage 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
jupyteras opposed tojavascript, which results in several syntax highlighting improvementsWhen 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

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.pathToKoloDirectorysetting 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 ⏱️

v1.8.0¶
2021-12-03
Show where in your code each SQL query originated

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

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.sqlite3instead of from the OS specific user data directory (to become the default soon). More details here: https://github.com/kolofordjango/kolo/issues/8Added the “Path to Kolo Directory” setting which specifies the path to the
.kolofolder (☝️) 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.kolodirectory 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 ⏪
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


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
And the button to “unselect” an invocation is now right next to the selected invocationA 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

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
Support for VSCode untrusted workspaces
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_NAMEin 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
Initial release. New to Kolo? Check out our website and the announcement video