Skip to content
Tildev0.6.1

Changelog

All notable changes to Tilde. Generated from the commit history by git-cliff.

  • pgp: Report the cancellation when it cut the input, even if gpg ended first
  • scripting: Add the bar and sys modules for the bars of tt
  • tui: Build the bars of tt from the functions of the scripts
  • ui: Draw a bar line with pieces of colour and drop items when it is narrow
  • tui: Show the bars of the scripts on the main screen
  • scripting: Choose the colour theme from Lua with ui.theme
  • tui: Show the keys that work in a bar at the bottom of the reader
  • tt: Search the whole mail cache of the open account with g/
  • tests: Keep the bar tests free of the default bars file
  • tui: Apply the review of the bars
  • scripting: Apply the review of ui.theme
  • scripting: Refuse a bar set from inside a bar function
  • tui: Apply the review of the reader key bar
  • tui: Keep Close in the reader bar on a narrow terminal
  • tui: Show the shortest key in the hints and update the pages and the screenshots
  • bars: Close the re-entry gaps and apply the small findings of the review of the bars
  • bars: Keep the bars set while a reload runs
  • bars: Apply the minor findings of the review
  • screenshots: Wait for the clock with seconds in the top bar shot
  • tt: Apply the findings of the review of the cache search
  • screenshots: Never reach a server or the real runtime folder in the compose run
  • tests: Make the link test of bars.lua independent of the umask
  • tests: Mark the bars.lua link test as not for Windows
  • mail: Carry Message-ID, References, In-Reply-To and Reply-To in MailMessage
  • Describe the bars that scripts set
  • Add the screenshots of the reader, the top bar and a theme, and regenerate help.svg
  • Apply the minor findings of the review of the screenshots
  • Fix the pages that contradict the pictures and the program
  • Say what a file with mistakes does and list the keys for writing and answering
  • Say that the demo has no account and where the text of a new mail goes
  • Add the pictures of the tree, a command message, the compose window, a key description and a narrow bar
  • Apply the minor findings of the review of the new pictures
  • tui: Add the scheduler and the loop of tilde-t
  • tui: Add tilde-t with the main screen
  • cli: Add tcli cache build
  • cli: Add tcli read to show and save the attachments of a message, decrypted when it is OpenPGP
  • tui: Dim the selection of the list without focus and bind the arrow keys
  • cache: Index the bodies of a Maildir in batches with several tasks
  • tui: Move the selection with the mouse wheel
  • tui: Add the command line opened with a colon
  • tui: Search the messages with a slash, n and N
  • tui: Show the real accounts and the inbox
  • release: Ship tilde-t as a single file, in the archives and in the Debian packages
  • tui: Load colour themes from themes/*.toml
  • ui: Add the TextView widget
  • ui: Add the TreeView widget
  • scripting: Bind ? to help.show in the default keybind.lua
  • rules: Publish an event when a rule fires on a message that arrives
  • tui: Show the folders of the accounts in the sidebar
  • tui: Call the executable of the terminal interface tt
  • cli: Add –config to tcli and tt to move the root directory
  • tui: Open a message and read it in a reader window
  • tui: Add help.show_keys, a window that lists the key bindings
  • tui: Add –theme to pick the theme from the command line
  • ui: Add KeyResolverText, a hint that shows the keys of a command
  • tui: Run the editor of the user on a text in a private temporary file
  • core: Write and read the file in which a mail is composed
  • core: Make the template of a new mail, a reply and a reply to all
  • tui: Write a new mail in the editor of the user and send it
  • tui: Answer a message with r and R
  • tui: Decrypt and verify OpenPGP messages in the reader
  • tui: Apply the review of the scheduler and the loop
  • tui: Run only the actions queued at the start of a scheduler call
  • tui: Apply the review of tilde-t
  • cli: Apply the review of cache build
  • pgp: Open the PGP/MIME message that Proton Bridge rebuilds as multipart/mixed
  • pgp: Accept only real public keys beside a Proton Bridge ciphertext
  • cli: Harden tcli read after the review
  • tui: Apply the review of the focus colours
  • cache: Apply the review of the batch indexing
  • ui: Keep the bright selection under a window and keep a custom selected role
  • ui: Find the focus that comes back to the content when a window is shown again
  • tui: Leave the wheel mode on when tilde-t exits
  • tui: Apply the review of the command line
  • tui: Apply the review of the search
  • tui: Apply the review of the real data
  • release: Apply the review of the packaging
  • release: Apply the minor findings of the review
  • tui: Apply the review of the themes
  • ui: Apply the review of the TextView
  • ui: Apply the review of the TreeView
  • rules: Apply the review of the rule applied event
  • tui: Apply the review of the folders in the sidebar
  • cli: Apply the review of the root directory option
  • tui: Apply the review of the reader
  • deb: Name the metapackage tilde-all
  • deb: Say tilde-all on the home page of the site
  • tui: Apply the review of the key help
  • tests: Dispose the test classes that xunit 2 ignored
  • tests: Dispose CachedImapTests and guard the integration project too
  • tests: Apply the minor points of the review of the disposal fix
  • tui: Apply the review of –theme
  • tui: Apply the minor points of the review of –theme
  • ui: Apply the minor points of the review of RowsView
  • ui: Apply the review of KeyResolverText
  • ui: Apply the minor points of the review of KeyResolverText
  • tui: Apply the review of the external editor
  • tui: Apply the minor points of the review of the external editor
  • core: Apply the review of the compose file
  • core: Apply the review of the compose templates
  • core: Apply the minor points of the review of the compose templates
  • tui: Apply the review of the compose command
  • tui: Apply the minor points of the review of the compose command
  • tui: Apply the review of the reply command
  • tui: Apply the minor points of the review of the reply command
  • tui: Apply the review of the reader with OpenPGP
  • ui: Share the code of ListView and TreeView in RowsView
  • tui: Name the archives of tt as the build makes them
  • Keep the name of the former program out of the changelog
  • site: Add the website scaffold from Astro Starlight
  • site: Keep the site free of references to its predecessor
  • site: Apply the review of the website scaffold
  • site: Check the length of the pages and report the stubs
  • site: Apply the review of the site checks
  • site: List every page of the site and add the stubs
  • site: Apply the review of the page manifest
  • site: Encode the brand tokens in the theme
  • site: Add the chat sign and the social image
  • site: Write the home page
  • site: Apply the review of the brand and the home page
  • site: Write the Start pages
  • site: Keep the title of an aside when a page is imported
  • site: Apply the review of the Start pages
  • tui: Describe how the HTML of a message is shown
  • site: Write the Use tt pages
  • site: Write the Reference tables
  • site: Describe help.show_keys in the Reference of tt
  • site: Write the Scripts pages
  • site: Write the Plugins pages
  • site: Write the Contribute pages
  • site: Let the guard pass words that hold the letters of the former program
  • site: Say that the question mark opens the key help
  • site: Write the tutorial of tt
  • site: Write the Configure pages
  • site: Write the tcli and the Keys and rules pages
  • site: Say that the question mark opens the key help on the keys page
  • site: Add the screenshot script and its page
  • site: Apply the review of the screenshot script
  • site: Make the pages agree with each other
  • site: Show the screens of tt on the pages
  • input: Add the key service with contexts, vim notation, counts and sequences
  • scripting: Add the keys module
  • scripting: Add the default keybind.lua
  • ui: Add the widgets and the layout of the terminal interface
  • ui: Draw the widgets into a buffer of cells
  • ui: Load a screen from an XML file
  • ui: Bind the widgets to the properties of a view model
  • ui: Add the main view model and the commands of the lists
  • ui: Run the commands of the keys that are pressed
  • ui: Add the window widget
  • ui: Add the status bar component
  • ui: Add two-way bindings
  • ui: Add the text box
  • ui: Add the password box
  • cli: Add tcli cache search
  • cli: Add tcli plugins list
  • ui: Add the scroll bar to the list
  • tui: Add the ANSI terminal of tilde-t
  • release: Sign SHA256SUMS with the release key
  • ui: Measure a text with a lone surrogate and let a text block be subclassed
  • build: Pass the analyzers of a clean build with warnings as errors
  • ui: Apply the review of the key router
  • ui: Apply the review of the window widget
  • ui: Apply the review of the status bar
  • ui: Apply the review of the two-way bindings
  • ui: Apply the review of the text box
  • ui: Apply the review of the password box
  • cli: Apply the review of cache search
  • cli: Apply the review of plugins list
  • ui: Apply the review of the scroll bar
  • cache: Tell a failed search from an empty one
  • cache: Apply the review of the search failure
  • tui: Apply the review of the ANSI terminal
  • release: Apply the review of the checksum signing
  • host: Move the default plugins and the scripts folder out of the CLI host
  • host: Apply the review of the host library
  • input: Apply the review of the key service
  • scripting: Apply the review of the keys module
  • ui: Apply the review of the widgets and the layout
  • ui: Apply the review of the cell rendering
  • ui: Apply the review of the XML loader
  • ui: Apply the review of the bindings
  • ui: Apply the review of the main view model
  • ui: Raise the status from the setter of the selected message
  • ui: Simplify the properties of the widgets
  • cli: Tcli watch writes one line for each event
  • cli: Watch listens before the accounts start and ends with 0 on Ctrl+C
  • cli: The findings of the review of watch
  • cli: CliApplication.RunAsync takes the cancellation token last
  • cli: Pass the folder listing as a method group in cache rebuild
  • pgp: Open signed and encrypted mail
  • pgp: Sign and encrypt the mail I send
  • cli: Tcli cache rebuild empties the mail cache and fills it again
  • cache: Full text search over Maildir accounts
  • cli: Tcli scripts loads init.lua and shows what the scripts did
  • pgp: Inline PGP, reading and sending
  • pgp: The keyring event for Lua and the docs of OpenPGP
  • cli: Tcli cache rebuild indexes the body of every message
  • cli: Tcli rules applies the mail rules, all or one by name
  • pgp: A key for each mail account (gpg_key)
  • pgp: The findings of the review of the read path
  • pgp: The findings of the review of the write path
  • cli: The findings of the review of cache rebuild
  • cache: The findings of the review of the Maildir search
  • pgp: The findings of the review of inline PGP
  • cli: The findings of the review of tcli scripts
  • cli: The findings of the review of cache rebuild –bodies
  • pgp: The findings of the review of the account key
  • cache: Rebuild –bodies asks an IMAP server about the folder once for many messages
  • cache: The findings of the review of the folder check of the indexer
  • core: Add in-memory EventHubService and move contracts to Tilde.Abstraction
  • abstraction: Add connection and mail contracts
  • abstraction: Add chat contracts
  • abstraction: Add middleware, search, cache, log and account contracts
  • abstraction: Add mail events and account id on chat events
  • core: Add middleware chain builder and debug logging
  • core: Add ConfigService with typed sections and expanded values
  • core: Add TildePaths.ResolveDirectory
  • core: TildeBootstrap and internal plugins (#2)
  • abstraction: Extend IMailStore and publish mail events
  • maildir: Add the Maildir project, its settings and the file name parser
  • maildir: Add the nested folder layout and the folder directory
  • maildir: Read folders and messages with MaildirMailStore
  • maildir: Write operations of MaildirMailStore
  • maildir: Add the Maildir++ folder layout
  • maildir: Publish arriving mail and connection state, and give the factory the account id
  • maildir: Add the Maildir factory and plugin
  • core: Add author and url to the plugin metadata
  • maildir: Log the operations of the Maildir store
  • imap: Add the IMAP project, its settings and the parts without a network
  • imap: Connect to an IMAP server and publish the connection state
  • imap: Read folders and messages
  • imap: Flags, moving, copying, saving, expunge and folders
  • imap: Announce arriving mail, and add the IMAP factory and plugin
  • abstraction: List a window of the messages of a folder
  • core: Add AccountService, which wraps every connection in the middleware chain
  • abstraction: Extend MailDraft and build the message to send from it
  • core: Publish MailMessageSentEvent from a middleware and put it in every transport chain
  • smtp: Add the SMTP plugin on MailKit
  • chat: Add presence to the chat contract
  • core: Publish the events of every chat client on the hub
  • xmpp: Add the XMPP plugin project and its settings
  • xmpp: Map XMPP stanzas to chat events
  • xmpp: Add the XMPP chat client, factory and plugin
  • maildir: Keep a per-folder list of message files
  • maildir: Recover from a failed file system watcher
  • core: Write the logs to a file when logging.log_to_file is true
  • core: Add the job scheduler
  • irc: Add the IRC plugin project and its account settings
  • irc: Read and write the lines of the IRC protocol
  • irc: Turn IRC lines into chat events
  • irc: Read lines with a size limit and wait for the answer of the server
  • irc: Add the IRC chat client, factory and plugin
  • chat: Add MarkReadAsync and ChatMessageReadEvent to the chat contract
  • xmpp: Sync what is read or answered on my other devices
  • core: Add WhoNeedsMeService, the list of what waits for me
  • core: Port the timer wheel of Moongate
  • core: Run the timers on a dedicated thread and keep a failing timer from stopping the others
  • core: Start and stop the timer service with the bootstrap
  • core: Add the command registry shared by C# and Lua
  • irc: Accept read markers without sending any
  • scripting: Add the Tilde.Scripting library with the Lua engine
  • irc: Report renames and kicks, and bound what the mapper remembers
  • irc: Count the relay prefix in the size of a message and skip a repeated join
  • irc: Bound the queue of chat events
  • irc: Space out the lines the client sends
  • irc: Add the reconnect and channels settings
  • irc: Connect again after a lost connection and put the account back
  • scripting: Add the events module and the bridged hub events
  • scripting: Add the commands module and the reload command
  • scripting: Add the jobs and timers modules
  • scripting: Write the editor definitions and document the library
  • abstraction: Give MailFolder a validity token that IMAP fills with the UIDVALIDITY
  • irc: Build the IRC client on IRCDotNet.Core
  • cache: Add the Tilde.Cache library with the configuration, the size parser and the full-text query
  • cache: Open the cache file encrypted and create its schema with linq2db
  • cache: Store folders, headers and whole messages
  • cache: Search the cache with full-text queries
  • cache: Keep the cache under size_max by dropping the whole messages used least
  • core: Let plugins decorate the store of an account
  • cache: Decorate a mail store with the cache
  • cache: Add the cache plugin, its configuration and the reset command
  • cache: Search the mail of an account through IMailSearchService
  • irc: Show who goes away, and send and read /me actions
  • cache: The follow-ups of the reviews
  • connections: Say which account a connection event belongs to, and report IMAP reconnects
  • chat: Publish the messages I send and the errors a network gives back
  • mail: Events for failed sends, folder counts of outside arrivals and an emptied cache
  • chat: Events for kicks, renames, my own joins and leaves, invitations and topics
  • xmpp: Events for corrections, retractions, receipts, chat states and subscription requests
  • core: A service that tells which plugins are active
  • accounts: Tell the application which part of an account could not be created
  • cli: Add the Tilde.Cli project
  • cli: Tcli skeleton and the accounts command
  • mail: Tell what other clients do to the mailbox
  • scripting: Lua events for the chat, account and outside-change events
  • mbox: The scanner, the status flags and the settings of the mbox plugin
  • mbox: The read only mbox mail store, its factory and its plugin
  • cli: Tcli check and check –connect
  • xmpp: Room message ids, moderation, mentions on corrections and nick changes in a room
  • mail: Watch the other IMAP folders, and tell when a folder must be read again
  • cli: Tcli send email
  • chat: Messages say if they mention me and if they come from the history
  • pgp: Find gpg, read the keyring and list the keys
  • cli: Tcli send chat and tcli cache reset
  • rules: The contract and the data of the rules engine
  • rules: Matching, planning and running the mail rules
  • rules: The rules service follows the new mail
  • rules: The Lua module rules
  • rules: Matching and running the chat rules
  • rules: Chat rules from Lua
  • rules: A Lua function as the action of a rule
  • pgp: Import, export and delete keys
  • config: Tell every wrong section, unknown key and unknown section, with its line
  • Generate THIRD-PARTY-NOTICES from the NuGet packages
  • pgp: Look up, receive and refresh keys
  • Automatic versioning from Conventional Commits and tcli archives
  • cli: Tcli prints a header with its version when it starts
  • cli: Debian packages of tcli and a release workflow
  • pgp: Sign, verify, encrypt and decrypt a MIME entity
  • core: Keep the events of a finished operation and specify the mail store contract
  • maildir: Survive files renamed by other programs, never follow links and finish a delivered append
  • maildir: Handle duplicates, renames inside new and a missing tmp, and make the watcher tests deterministic
  • maildir: Check the arguments of MaildirPlugin.RegisterAsync
  • imap: Never send the password in clear text with auto security
  • imap: Do not repeat commands that change data, and close the races of connect and dispose
  • imap: Follow UIDVALIDITY, keep what arrived during a reconnection and fix stale folders
  • core: Do not block the start on a slow account, publish the accounts as a snapshot and keep expanded values out of messages
  • smtp: Handle idle timeouts, cancellation and invalid drafts
  • maildir: Stop the watcher for good and stop recovering forever
  • maildir: Forget messages that left new and survive a folder deleted during recovery
  • core: Keep the log folder private and bring the docs in line
  • xmpp: Cancel a connect that hangs and keep room private messages private
  • core: Publish a job failure without holding the worker
  • irc: Log in with the account, send a text whole or not at all, refuse more joins
  • Close the critical findings of the review of WhoNeedsMeService
  • core: Do not spin before a timer is due and start the timer thread under the lock
  • core: Publish the command event from another thread and clean the message better
  • scripting: Let modules resolve the engine and start after a reload
  • scripting: Never wait for the gate from inside a unit and keep the unit from leaking
  • irc: Wait longer after a connection that drops at once and throttle every line
  • scripting: Cancel a queued timer run, validate extreme intervals and write the definitions whole
  • core: Keep the Tilde folder absolute when the config folder does not exist yet
  • core: The root directory is ~/.config/tilde, not the old folder
  • imap: A zero UIDVALIDITY means no token, and name the GreenMail delay
  • irc: End a connect when the user disconnects, ignore CTCP, and keep the session of a second welcome
  • cache: Keep whole messages that only moved, and the other findings of the review
  • cache: The findings of the review of the cached store
  • irc: Address review of away-notify and /me
  • cache: The findings of the global review
  • irc: Read /me on each line of a text
  • cache: The findings of the review of the follow-ups
  • cache: A cache file knows its account, and a crash while it is created no longer switches the cache off
  • cache: The findings of the review of the owner and the creation
  • imap: The findings of the review of the connection events
  • chat: The findings of the review of the sent and error events
  • mail: The findings of the review of the mail events
  • chat: The findings of the review of the membership events
  • xmpp: The findings of the review of the XMPP events
  • core: The plugin service hands out read-only lists and the bootstrap refuses a second one
  • cli: The findings of the review of the tcli skeleton
  • mail: The findings of the review of the outside changes
  • chat: Close the limits left by the first round of events
  • mbox: The findings of the review of the mbox plugin
  • mbox: The minor findings of the review of the mbox plugin
  • cli: The findings of the review of tcli check
  • xmpp: The findings of the review of the room ids and moderation
  • imap: The findings of the review of the folder poller
  • cli: The findings of the review of tcli send email
  • pgp: The findings of the review of the key listing
  • cli: The findings of the review of tcli send chat and cache reset
  • rules: The findings of the review of the rules engine
  • rules: The minor findings of the review of the rules engine
  • rules: The findings of the review of the chat rules
  • pgp: The findings of the review of the keyring management
  • config: The findings of the review of the config diagnostics
  • Use the genuine GPL-3.0 text in the license texts
  • The findings of the review of the third-party notices
  • pgp: The findings of the review of the key lookup
  • cli: The findings of the review of the header
  • cli: The findings of the review of the Debian packaging
  • The findings of the review of the release automation
  • pgp: The findings of the review of the PGP/MIME protector
  • maildir: Give two lambdas of the store an explicit return type
  • core: Move the MimeKit mapping into Tilde.Core
  • core: Share the mail server settings, the security type and the certificate rule
  • Move the protocol plugins from src to plugins
  • cli: Pass the console method as the log and align the README tables
  • Document the configuration rules and the Abstraction boundary
  • xmpp: Document the XMPP account settings and the chat event rule
  • Add a short README and the mascot
  • Mention the XMPP plugin in the README
  • Mention the job scheduler in the README
  • Mention the IRC plugin in the README
  • cache: Document the cache
  • cache: Say the encryption is optional, and the other findings of the review
  • rules: The rules engine
  • rules: Chat rules and the run action