A-gent-0.11.0.17: CHANGELOG.md
# Revision history for Λ-gent
## 0.11.0.17 -- 2026-05-18
* Inconsistency between `Linux` and `macOS` when it comes to default option for
`pwd`:
* If no option is specified, `-P` is assumed (Linux)
* If no options are specified, the `-L` option is assumed (macOS)
```
-L, --logical use PWD from environment, even if it contains symlinks
-P, --physical resolve all symlinks
```
* Removing exported helper functions from `Internal.RIO` that weren't used by
any other module.
## 0.11.0.16 -- 2026-05-14
* The Action and Message modules need to expose used types from the internal LLM
module as well.
## 0.11.0.15 -- 2026-05-14
* Internal LLM types MUST be exposed by LLM module.
## 0.11.0.14 -- 2026-05-14
* Ensured not to expose internal types. We import and re-export for type
signatures, but not the constructors.
## 0.11.0.13 -- 2026-05-14
* Updated scripts from website with changes from `0.11.0.12`.
> **NOTE:** Due to changes in this release, we need to check and update once
> again.
* Checked scripts on `macOS` with changes from `0.11.0.12`.
> **NOTE:** As before, with changes from this release, we need to check once
> again.
* Moved `Message` and `Action` to their own modules. For `Action`, we also add
an internal module to avoid exposing type constructors.
* Ensured not to expose internal types. We import and re-export for type
signatures, but not the constructors.
## 0.11.0.12 -- 2026-05-12
There have been made some **major changes** to this library and therefore there
is no backwards compatibility with previous versions:
* Added support for `Code` mode, as in `read` and `write` files back and forth
to the `git` repository. A new tab will be added to the website with a script
explaining usage.
* Added support for script integrity as known from `HTML`:
```
<script integrity="sha256-YBbjT3uJjnS6ofC6HIal+4vNvgA9vZBfC/KMVN51URc=" …></script>
```
If the `LLM_SIGN_SHA` environment variable is provided on execution, the
script will check it's own file `SHA-256` hash and compare to the provided:
```
# Λ-gent integrity failed:
> 2d3c326e2991da5876b820fe128c3840d3c0664c43907ce725f3f3f26f2fbabc (expected)
> 8f89a79f891ce329a6142c68962fcad0b438e7d0b80c9410f0141cc6c02437d0 (observed)
```
* Adding `uuid` to main context future purposes.
* Due to refactoring, the context lost a few properties (ex: `exit`, `hist`,
`root`, …) and some of the internals have changed. Still same output, but,
less chaotic. Furthermore, `rootPath` is no longer needed.
* Due to refactoring, some of the exposed utils are no longer
relevant. Therefore, they are moved to an internal module.
* Removed quotes from `curl` headers as some `LLM` API's would parse them, but
others would not.
* Followed up on binary flags as we need to have the **least common** between
`Linux` distros and `macOS`.
* Added the `/atom` and `/repo` commands to help parse and store files received
from LLM's `atomically` with help of `git worktree` as well as list the
produced `git branches`.
* Added `message` and `action` types simplify and make more robust the
interactions between user and `Λ-gent`.
* Wrapped `withExitCode…` functions in `try` (`Control.Exception`) to ensure the
`Λ-gents` don't crash and burn. Also wrapped `read` and `write` files as well
with `try`.
## 0.11.0.11 -- 2026-04-19
* Fixed a few misspells.
* Refactored `Files` to `FilePaths`.
* Refactored `Document(s)` to already existing `File(s)` for simplicity.
* Excluding non-files (symbolic links) from search as this could bypass the
limitation of the current working directory.
## 0.11.0.10 -- 2026-04-17
* Minor bug fixes and misspells.
* Moved Agent/JSON.hs to Agent/Data/JSON.hs
## 0.11.0.9 -- 2026-04-16
* Minor bug fixes.
## 0.11.0.8 -- 2026-04-15
* Refactored `/pile` to no longer storing a `find` filter but the absolute path
to the `find` results.
> **NOTE:** Even though absolute path is stored, only relative will be shown.
* `/list` performance has been improved instead of performing the filters with
Haskell, it's now passed to the `find` command.
* Added logic to request `ISO-8601` timestamps (`UTC`) that are file path safe.
* Added to website, info tab, a guide on how to setup LSP support for IDE's:
* https://a-gent.org/info.html#lsp-support-for-ides
* Due to future `git-worktree` usage, the folder `/tmp/` MUST exist in the root
of the project and it needs to be added to the `.gitignore` file to avoid
`GIT` collisions.
* Added `Internal.RIO` so the application can execute `RestrictedIO`, but,
consumers of the `Λ-gent` package will NOT.
* All `Context` properties, except `load`, have now `internal` constructor
types. This will ensure that we will know that they have been instantiated by
the `Λ-gents`.
* From `0.11.0.6 -- 2026-03-20` below:
> **NOTE**: Fix is not verified. Well, this update will confirm (or not).
* Package is NO longer marked as broken: https://github.com/NixOS/nixpkgs/blob/haskell-updates/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
* Added `withExitCodeStdIn` as `curl` has a limit on data that can be sent as a
parameter.
* A `Agent.Data.ANSI.EscapeCode` module has been added to help distinguish
between input/output.
* `/send` (`/s`) has been added to provide the capability of sending `/pile`
files as context to messages sent to LLM's.
* `repl` and `replWithMode` now need to provide an optional value for the
projects `rootPath`. This refactoring has been added to ease logic
implementation for the `Λ-gent` package.
> **NOTE**: Changes to current existing Λ-gent scripts can be done by just
> post-fixing `Nothing`. Example: `replWithMode Echo eval Nothing`
## 0.11.0.7 -- 2026-03-30
* We seem to have fixed multi-line issues. I guess we can say that we are
probably as good as `GHCi`.
> **NOTE:** A thorough refactoring needs to be done to enforce `DRY`.
* Added support for:
* `CTRL + L` clear screen.
* `CTRL + U` clear text from current position to start of input.
* `CTRL + K` clear text from current position to end of input.
* `CTRL + A` equivalent to `HOME`.
* `CTRL + E` equivalent to `END`.
* `CTRL + D` equivalent to `DELETE`.
## 0.11.0.6 -- 2026-03-20
* Added a `todo.org` file in the root folder of the project. This will allow to
see current, but also future, status of the project.
* Expanded file capabilities for `Code` and `Plan`.
* Files will be shown with `relative` paths. However, they will be handled
with `absolute` paths under the hood.
* Added a few more `REPL` commands and improvements to typing.
* **NOTE**: There is a `bug` with regard of multi-line text. Hopefully it will
be fixed shortly.
* No longer on Bluesky and therefore, removed from `cabal` file.
* Issue with `haskellPackages` on `NixOS`. It seems that they use `stack` to
build with the latest `LTS`. The fix is to change in the `cabal` file the
following version contraint: `containers >= 0.7 && < 1` as `stackage` only has
the version `0.7` of the `containers` package.
* **NOTE**: Fix is not verified. Well, this update will confirm (or not).
* Added the `Agent.Control.Concurrent` module to provide support for
asynchronous tasks.
* Added `Agent.Utils` modules to help for the respective `modes`. This will help
keep `Λ-gent` code small by providing ready to plug code bloks.
## 0.11.0.5 -- 2026-03-08
* `ENTER` only triggers if something is typed.
## 0.11.0.4 -- 2026-03-08
* Fixed the `BUG` when trying to print emojii's ('🍎', '🍏', …):
```shell
<stdout>: hPutChar: invalid argument (cannot encode character '\55357'
```
by adding `setLocaleEncoding utf8` to `replWithMode`. Now instead of crashing,
invalid `UTF-8` characters will just be shown as single or multiple `?`.
## 0.11.0.3 -- 2026-03-06
* Made `read` usable by providing support for:
* `BACKSPACE` and `DELETE` to remove characters.
* Move back and forth with `←` & `→` (single characters) and `CTRL + ←` &
`CTRL + →` (words).
* Move to start and end of the text with `HOME` and `END`.
## 0.11.0.2 -- 2026-03-05
* Fixed issue with Hackage. The project now builds for:
* `ghc-9.4.8`
* `ghc-9.6.7`
* `ghc-9.8.4`
* `ghc-9.10.3`
* `ghc-9.12.2`
## 0.11.0.1 -- 2026-03-05
* Issue with Hackage. Since the service builds with `9.8.4` we have to comply
with that.
## 0.11.0.0 -- 2026-03-04
* Initial release after feedback from the NixOS Copenhagen User Group, March
meetup: <https://www.meetup.com/nixos-copenhagen-user-group/events/313205865/>
* There is a `BUG` when trying to print emojii's ('🍎', '🍏', …):
```shell
<stdout>: hPutChar: invalid argument (cannot encode character '\55357'
```
## 0 -- 2026-02-25
* First version. Released on an unsuspecting world.
## References
* Use of a fourth component [Version scheme][haskell-stack-ver].
[haskell-stack-ver]: https://docs.haskellstack.org/en/stable/maintainers/version_scheme/#use-of-a-fourth-component