Functional changes:
- Chat prompt no longer cleared when opening another chat
- Note now uses the selected persona in the same way Chat and Script does
- Current Model Settings and Persona are now displayed in the App status bar as they apply to all tools and not just Chat
- Current Model Settings and Persona are removed from the Chat secondary toolbar to give more space in Chat
- Server health reports now contain a unique instance id to differentiate in load balanced environments
Code improvements:
- Library updates to fix security vulnerabilities
- Minor UI and performance improvements
Functional changes:
- Scripts can be created in a jupyter notebook style tool that lets you create cells of different types including text, lists, and templates to parameterise prompts for querying the AI.
- Note Writer now uses the same model settings as specified in the Model Settings window rather than GPT-3.5
- Sidekick AI Help now uses gpt-4 instead of gpt-3.5-turbo
- Added support for OpenAI's gpt-4-0125-preview model
Code improvements:
- Chat prompt editor responsiveness improved for large prompt sizes
- Note editor responsiveness improved for large note sizes
Functional changes:
- Sidekick now has an admin user, default password: changemenow
- Only the admin user can do the following:
- Change custom text:
- Welcome text on the login screen
- Prompt placeholder text on the Chat
- Prompt placeholder text on the Note Writer
- Sidekick instance name displayed on the App toolbar
- Sidekick usage displayed on the App toolbar
- Turn on or off the following functionality for all users:
- Create account
- Delete account
- Reset password
- The admin user can also:
- Create a new user account and set its password
- Reset the password of a user
- Delete a user account
- Login page now detects if the sidekick server is not running and displays a message to that effect
- Change custom text:
- System information and error messages are now displayed in a status bar along the bottom of the App rather than in popup toasts. The status bar reverts to an information display after a short period of displaying a message. Clicking on the status bar will give a popup list of recent messages that have been displayed this session.
- /health route added to server for the Python Flask back end. This endpoint returns 200 OK if the server is running and 500 Internal Server Error if it is not (assuming it is healthy enough to realise it has a problem versus simply being down). It also provides a JSON response with various health data and some stats including uptime, whether the database is up and counts of endpoint requests since server start. For the web_ui, if you want the health end point you currently need to run
npm start server.js
. The other ways of running the web_ui as statically built files do not support the health endpoint as there is no server running to be able to provide the 200 or 500 response. - /health endpoints also provides stats on prompt and completion tokens used against the OpenAI API since server start.
Code improvements:
- custom_settings folder previously allowed users to customise various parts of a Sidekick deployment by adding files into that folder. This has been replaced with an admin user who can change these settings via the Admin page.
- system_settings folder now contains the default settings for the admin user, and the admin user can change these settings via the Admin page.
- Changed SidekickAI ReactMarkdown to use components prop instead of deprecated renderers prop
- /ping route now returns version of the Sidekick server
- docker-compose.yml updated so you can run
docker compose up
to run the web_ui and server locally in containers on different ports to runningmake run-dev-locally
from within the server and web_ui folders respectively if you set your .env files in each of those folders accordingly
Bug fixes:
- Note no longer creates duplicate notes when creating a new note directly from Chat by clicking the append message(s) to note menu
- Explorers now maintain their sort order when they refresh due to new Notes or Chats being created
- Attempting to create a user that already exists now returns a message saying "user already exists" rather than returning a database error
- Chats and Notes used to save when loaded, updating their updated_date. They now only save when changed.
Functional changes:
- Notes can now be added to an AI library so they can be used by the AI to answer questions
- Chat has has an AI Library button in the Prompt Editor that lets the user add and remove knowledge to the Chat from the AI Library or all Notes depending on filter
- Model settings now has a save button to save the current settings as the default for that user
- Model settings now has a restore system default settings button
- Explorers now support showing item properties (created data, modified date)
- Explorers now support sort by name, created_date, modified_date, ascending or descending
Functional changes:
- Note Writer now streams its response so you can see it being generated in real time and you can stop it at any time by clicking the stop button.
- Added App menu to top left of App Toolbar
- Added Note context menu to append selected text to chat input.
- Renamed the "None" persona to "No Persona" and made this the default persona for a new user. This makes the default response that of the model with no system prompt.
- Added a "Concise" Persona
- Chat and Note panels now limit their maximum width for better readability on large screens, and centre themselves horizontally between any open tool panels
- Holding down ctrl, meta, alt, or shift keys when opening a tool will now not close other tools that are open
Code improvements:
- Server now uses SQLAlchemy to access the database rather than raw SQL. This makes the code more readable and maintainable and makes it easier to support multiple databases. The default setup is SQLite, and you can configure it to use PostgreSQL.
- On first login, the following panels open by default: Sidekick AI Help, Chats Explorer, Chat
Bug fixes:
- Prompt Engineer window now fits in the vertical height of the App in the same way the other tool windows do. Previously it was slightly bigger resulting in a scrollbar appearing at the right of the App.
- Fixed bug in ResizeObserver where for some UI interactions an "ResizeObserver loop completed with undelivered notifications." error was being thrown.
- Improved how Chat and Note prompt windows are sized when the browser window is small.
- Notes are now downloaded as .txt files rather than .json files
Functional changes:
- The prompt at the bottom of the Note is now a GenAI Note Writer. You can tell it what you want to add to your note. It will use the existing note content as context and generate additional text based on the request in your prompt that it will append to the note.
- Pressing return in the login and create user screens now moves the cursor to the password field if you were in the userid field and submits the form if you are in the passord field.
Functional changes:
- Added a prompt templates tool with a selection of pre-canned templates
- Notes can now render a preview of markdown and code
- Chats now render markdown as well as code and markdown interspersed with code
- Chat can now save prompts as templates
- Now uses a single SQLite database for all users, chats, notes, settings, and feedback rather than one data database per user plus a login and feedback database. This simplifies the deployment and configuration of the app, and makes it easier to share chats, prompts, and notes with other users.
- Chat secondary toolbar now has a button to save the current prompt as a template
- Added custom_settings for the App to set the instance name, and usage, which are displayed next to the version in the App bar; instanceName is intended to be used to distinguish between different instances of the app, e.g. Dev, Test, Prod. usage is intended to be used to distinguish between how that instance could or should be used, e.g. could state private/public, security classification, geographical region, team, divsion, etc. Both settings are just display strings for information purposes only.
- Renamed the Prompt Composer tool to Prompt Engineer to refelect the standard terminolgy used in the AI industry.
- Chat and Note context menus now have a copy highlighted text option when text is selected
- Other minor UI improvements
Code improvements:
- Sidekick AI help now uses tabs instead of accordian for the separate sections for a clearer UI
- Refactored markdown and syntax rendering into a new SidekickMarkdown component
- Code syntax highlighting now defaults to ```code where the language is not specified
- Carousel component and Login updated to ensure login and create account headings are visible irrespective of browser window size and zoom state
UI changes: side panel swapping and pinning, custom messages for login and chat, stop streaming button, improved manual.
Functional changes:
- Chat now has a stop button that will stop streaming of the chat response to the chat window, enabling the prompt text area so another prompt can be entered
- Opening a side panel now closes other side panels that are open unless they are pinned. This allows you to choose your working style, saves screen space and keeps the UI tidy by default, whilst allowing pinning as many of the controls to be open for easy access as you want.
- Updated manual with more comprehensive reference of Sidekick features and controls.
- Chat information about personal, temperature / creativity, and model moved out of the secondary toolbar into a display-only footer.
- Added personas for CFO, CIO, CINO, Board member, and None (blank system prompt), improved the existing persona system-Prompts, added a description and tags per persona. Personas tool now shows the shorter description (what the persona does) by default, and the longer system_prompt (how the AI should respond for that persona) when you hover over the persona or click on the expand button in the toolbar.
- Added custom settings for specifying text to display on the login screen and as the chat prompt ready placeholder. See Configuration Guide for more information.
- Chat's can change course; the Chat name now has a button to regenerate it based on the full chat content
- Notes can change course; the Note name now has a button to regenerate it based on the full note content
- Sidekick manual more content complete, added prompt engineering playbook, and sections on understanding Generative AI and responsible usel; rendered as markdown with hyperlink navigation
- Chat prompt area now limits its height to 40% of the window and adds a scrollbar if the prompt doesn't fit
Code improvements:
- Removed gpt-3.5-16k model, which is no longer supported.
- Focus is now set to the prompt text area when the chat response completes
- Fixed bug where sometimes "append message to note" was not working
- Chat, append message to note, now creates a new note to append the message to if one was not open
- New chats are only saved when they have content, and the new chat button is disabled when the chat is a new (empty) chat; this avoids new empty chats being created each time the app is opened
- Export note to file now removes special characters not permitted in filenames
- Logout does a page reload to ensure all state is cleared and ensure any updates to the app are applied
- Notes are now saved when the name or content lose focus, previously notes were saved as the content was edited
- Added debounced ResizeObserver to Chat and Note components to prevent React Resize Observer loop limit exceeded error when the browser window is resized
Functional changes:
- Sidekick Manual added, click the ? icon on the toolbar
- Sidekick AI Help added, ask questions of the manual rather than reading it!
- Chats are automatically named. New empty chats are named "New Chat". If this is their name when you enter a prompt, they will be automatically given a name based on the text in the prompt.
- Notes are automatically named. New empty notes are named "New Note". If the note has that name when you have entered text into it and hit return or have copied text from the chat into the note then the note will be give a name automatically based on that text.
- Travel Agent persona added
- Settings cog top right now opens the App settings window
- Change password option added to App settings window
- Delete account option added to App settings window
Code improvements:
- Add persona button removed as this was not implemented yet; it will be added in a future release
Functional changes:
- Default persona is now 'Answerer'
- Shift-return supported in prompt editor to add a new line without sending the prompt
- Chat and Notes explorers now highlight the open item
Code improvements:
- Corrected a race condition between the streaming completion and updating the chat window that intermittently caused some deltas of the response to be dropped
- Removed redundant feedback button wrapper that was giving a warning
- project
make run-dev-locally
now no longer does a production build, which is unneccessary and takes longer - server
make run-dev-locally
andmake run-prod-locally
now also do init to ensure any new library dependencies are installed - Fixed bug where if the chat window is closed and a chat is clicked on in the chat explorer, a new chat is created instead of the existing chat being opened
- Chat window now resets itself when closed to avoid opening the last chat when the window is reopened from the app toolbar New chat button; now a new chat is created
- Option to toggle streaming of the chat response on or off added to ModelSettings window. If you have an environment you have deployed this in where it looks like the network setup or security perimeter could be getting in the way, this might solve your issue.
- README.md now has more informative text and images
- Default open windows are now Chat and Chats Explorer
- When streaming, the following controls are now disabled: Chat - send, ask again, and reload last prompt for editing; Persona - Ask again from this persona
- Server access tokens set to not expire, previously they expired after an hour
- Chat context menu now includes 'Copy all as text' and 'Copy all as html'
- Added release notes
- Updated roadmap with more interactive AI features
- Chat with an AI
- The chat is streamed to you in realtime as the AI responds
- Code blocks are syntax highlighted
- Copy individual chat messages to your clipboard
- Select the persona of the AI from a library of personas
- Set a default persona
- Mark personas as favorites
- Filter personas by name and favourite status
- Compose your prompt from a library of fragments
- Create and edit notes
- Each user has a database to store their chats, notes, and app settings
- Explorer views to list and filter chats and notes
- Augment notes with the best parts from your chats
- Export notes to a text file
- Import notes from a text file
- Chat with your notes, e.g.
- Ask questions about your notes
- Ask for a summary of your notes
- Ask for a summary of your notes from a specific perspective
- Add a chat to a note
- Run web_ui and server locally or on server(s) in dev or prod modes