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.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
msgpackr
tomsgpack-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
SerializationError
toKoloSerializationError
.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
andfrozenset
extension types.Msgpack trace data (locals, call args, return values, etc) will now display in the much more familiar pythonic way.
True
instead oftrue
,None
instead 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 test
orkolo 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](https://user-images.githubusercontent.com/7718702/240657952-735482bb-8e77-4b47-ac5d-00dcca05373d.png)
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
,True
andFalse
as python values, instead of jsonnull
,true
andfalse
.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 asql_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 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.enable
decorator, 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=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
tracesMake 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_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 storeframe_spans
in 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
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 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.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 ⏱️
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.sqlite3
instead 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
.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 ⏪
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 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
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_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
Initial release. New to Kolo? Check out our website and the announcement video