Awesome
Squeak Inbox Talk
Bringing squeak-dev into your image. Now with AI support! ✨
A project originally conducted in the course of the Live Programming Seminar 2021 @ HPI. Many thanks to Marcel Taeumel for his diligent mentoring and advice!
Installation
Squeak Inbox Talk runs on Squeak 6.0 and newer versions. We follow the trunk-based development style of Squeak and strive to deliver full support for the latest Squeak Trunk. New features are only supported by the Trunk version of Squeak Inbox Talk. Older versions and releases of Squeak will only receive urgent fixes.
Automatic Installation (Recommended)
To install and start Squeak Inbox Talk, go to the main docking bar and choose <kbd>Tools</kbd> > <kbd>Squeak Inbox Talk</kbd>.
Manual Installation
-
Get a Squeak image (Squeak 6.0 or newer)
-
Install the latest system updates.
-
Open a workspace and evaluate the following:
-
Squeak Trunk:
Metacello new baseline: 'SqueakInboxTalk'; repository: 'github://hpi-swa-lab/squeak-inbox-talk:main'; load.
-
Squeak 6.0:
Metacello new baseline: 'SqueakInboxTalk'; repository: 'github://hpi-swa-lab/squeak-inbox-talk:squeak60'; load.
-
Alternatively, you can download the one-click image from the latest release and run it with zero installation effort.
Updating
In the Squeak Inbox Talk browser, press the Settings button and choose self-update. Alternatively, do TalkInboxBrowser selfUpdate
.
You can open Squeak Inbox Talk from the App menu in the world main docking bar. For detailed information on how to use the tool - in case this should not be straightforward -, see the usage documentation. Note that this document might not be 100% up to date. Please open an issue or use the "send feedback button" in the settings menu if you have any questions or issues!
If you want to learn more about how the Squeak development process looks like, how Squeak Inbox Talk integrates with the other tooling for trunk development in the Squeak, and how you can make your own contributions, you may also want to check out these resources:
- Squeak/Smalltalk - The Squeak Development Process: https://squeak.org/development_process
- Contributing to Squeak: In the image (Squeak 6.1Alpha and newer), open the help menu in the docking bar and click on "Contributing to Squeak".
Why?
Many Squeakers have experienced the following troubles in the past:
- Tedious navigation on the list: Where has this patch gone? Can someone remember where we were discussing this funky thing recently?
- High entry barrier for new contributors: You need to sign up on the mailing list to follow discussions.
- Hard review process: Notifications and discussions appear in your email client, but if you want to check out some code, you will switch to your image, of course.
Squeak Inbox Talk attempts to solve all these issues by merging all relevant artifacts in Squeak, including emails and Monticello contributions, allowing developers to explore them interactively. It comes with a free-text search and several powerful filters for aspects such as packages, review state of a contribution, and your personal involvement. These filters should make it easier to survey certain domains, gain a better understanding of the connection between inbox versions, or keep track of your own proposals.
How Does It Work?
In a nutshell, Squeak Inbox Talk is implemented by reusing and assembling together the following existing solutions:
- Squeak History, a project originally developed by Marcel (mt) that scrapes and processes all mailing list conversations from the mailman archives
- Squeak's
SMTPClient
for sending messages - The Monticello infrastructure, which remains the heart of our development workflow.
Optionally, further components such as IMAPClient
might follow later. On top of this, Squeak Inbox Talk adds a convenient layer for exploring and filtering conversations and contributions.
Semantics Plugin (Experimental)
This repository includes an optional plugin that enhances the browsing experience by contributing features such as semantic search, similar conversations, and AI-generated summaries of conversations to Squeak Inbox Talk. The plugin uses the SemanticText package and OpenAI's APIs for text embedding and generation. You can enable the plugin by turning on the "Semantic search in Squeak Inbox Talk" option in the preferences.
Available features:
- Summarize a conversation by selecting <kbd>smart summary</kbd> on the left in a conversation browser.
- Find similar conversations by selecting <kbd>similar conversations</kbd> on the left in a conversation browser
- Ask questions about a conversation by pressing <kbd>[Chat]</kbd> in the smart summary or select <kbd>chat with agent</kbd> from the <kbd>...</kbd> menu at the top of the conversation browser.
- Search and ask questions about the mailing list by selecting <kbd>chat with agent</kbd> from the <kbd>...</kbd> menu at the top of the main inbox browser. You can also ask the agent to summarize recent activity on the list.
This feature is currently in beta. Feedback and ideas welcome!
Implementational Notes
- This project is proud to use smalltalkCI and the create-image GitHub action.
UPSTREAM.md
contains a list of contributions that were made to upstream dependencies of this repository in the context of this project.
Further Reading
- Official announcement thread on the squeak-dev mailing list (mirror on lists.squeakfoundation.org)
- Official announcement of HyperKitty release on squeak-dev
- Talk Slides: Squeak Inbox Talk – Social Coding made easy (Meeting of German Squeakers Association, 2021)
- Christoph Thiede and Patrick Rein. Squeak by Example. 6.0 Edition. Lulu, 2023. ISBN 978-1-4476-2948-1.