All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Secrets are now optional. Any secrets needed to run a recipe will be prompted for
and stored in
$OUGHT_ICE_DIR/.env
. - ICE now supports Python 3.9 and 3.11.
- Toolbar to highlight all call nodes of a specific function/method, expand their ancestors to reveal them, and hide other irrelevant nodes.
- Integration with the new fvalues library, highlighting dynamic parts of formatted strings in the detail pane.
- Show the total cost of OpenAI API calls in each call node, assuming a price of $0.02 per 1000 tokens.
- When running a recipe:
- Automatically start the server in a background process if it's not already running. This can be disabled by setting the environment variable
OUGHT_ICE_AUTO_SERVER=0
. Runpython -m ice.server stop
to kill the process. - Automatically open the recipe in the browser. This can be disabled by setting the environment variable
OUGHT_ICE_AUTO_BROWSER=0
. - Log the URL instead of printing it.
- Automatically start the server in a background process if it's not already running. This can be disabled by setting the environment variable
- Environment variables
OUGHT_ICE_HOST
andOUGHT_ICE_PORT
to configure the server host and port.
- Breaking trace file format change: Traces are now stored in a directory with multiple files instead of one large file. This makes loading large traces in the UI much more efficient. Old trace files can no longer be loaded.
- Instances of dataclasses are serialized as JSON objects instead of strings using
dataclasses.asdict
so they have a readable structure in the detail pane.
- Fixed SQLite connection error which sometimes occurred when running async functions decorated with
@diskcache
. - Replaced hardcoded
/code/papers/
path (which only made sense in the old docker container) with environment variablePAPER_DIR
. - Added empty
py.typed
file to the package for type checkers.
Added missing python_requires
to PyPI package.
- Environment variable defaults are now read from
$OUGHT_ICE_DIR/.env
.
- When running a recipe, the trace url is no longer printed with the wrong port.
- Allow running the trace server using
python -m ice.server
.
- Breaking change: ICE no longer uses Docker.
- Breaking change: Python package dependencies are now listed in
setup.cfg
. - Breaking change: ICE data is now stored in
~/.ought-ice
by default. This can be customized by setting theOUGHT_ICE_DIR
environment variable.
- Breaking change: Removed most of
scripts/
.
- Added multi-format utilities to aid in prompt building.
- Added an extension mechanism:
ice/ice/contrib/
. Ask on Slack for details, or stay tuned for docs. - Added a Python API server. In the future, this will be used for a prompt playground.
- Breaking change:
Agent.answer()
has been replaced withAgent.complete()
.
- Improved the design of the trace detail pane.
- Fixed a startup error for some users.
- Fixed how lines are rendered in the trace tree pane.
- Initial release.