check / check (push) Successful in 1m21s
GET /api/v1/chats/{id}/messages returns the messages among a chat's
last count items (default 20, at most 100), oldest first. POST sends a
text, waits for the chat client's answer and returns 201 with the
message as sent. A chat the bot does not have is 404, a contact who
deleted the chat is 409, a text too long for one message is 413, and
any other failure is 500 with a chosen sentence.
The chat client spells out a message's formatting in its answer, up to
26 times the text's length, so 100 items in one answer can pass the
16 MiB read limit and end the connection. Items are read five at a
time.
Model: opus-5-5
50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
# Workflow
|
|
|
|
- branch (from `main`)
|
|
- do the work in Next Step
|
|
- move Next Step to the top of Completed Steps
|
|
- move the top item of Future Steps into Next Step
|
|
- commit (`docs/TODO.md` changes in the same commit as the work)
|
|
- merge to `main` if the branch is not protected, otherwise open a PR
|
|
- push
|
|
|
|
# Status
|
|
|
|
pre-1.0. No git tags exist. `main` is a working bot: one container image
|
|
holding the bot and the SimpleX Chat command-line client v7.0.2, a bot
|
|
profile named `calc` with a long-term address that accepts every contact
|
|
request, and exact arithmetic replies (`+ - * /`, parentheses,
|
|
decimals). The Gitea issue tracker is the authoritative list of work;
|
|
this file mirrors it.
|
|
|
|
# Next Step
|
|
|
|
Adopt the canonical `.golangci.yml` from the `prompts` repository once
|
|
it replaces `gomodguard` with `gomodguard_v2`. golangci-lint v2.12.2
|
|
warns on every run that `gomodguard` is deprecated. The file is
|
|
maintained upstream and is not edited here; done when `make lint` runs
|
|
with no deprecation warning.
|
|
|
|
# Completed Steps
|
|
|
|
- 2026-09-29 `GET` and `POST /api/v1/chats/{id}/messages`: a chat's
|
|
latest messages, and sending one
|
|
- 2026-09-29 Added the HTTP API in `internal/api`: the server on `PORT`,
|
|
the bearer credential from `API_TOKEN_FILE`, security headers and
|
|
limits, and `GET /api/v1/chats`
|
|
- 2026-09-28 Powers (`^`, also written `**`) and remainders (`%`) in
|
|
`internal/calc`, which now reads expressions with a parser of its own
|
|
in place of `go/parser`
|
|
- 2026-09-28 Moved the command tree and the `run` and `version` commands
|
|
from `cmd/simplexcalc/` into `internal/cli`; `cmd/simplexcalc/main.go`
|
|
is now a single call to `cli.Main`
|
|
- 2026-09-26 Seeded from `go-template-repo` (renamed, its HTTP service
|
|
removed) and built the bot: `internal/calc` for the arithmetic,
|
|
`internal/simplex` for the chat client process and its WebSocket API,
|
|
`internal/bot` for address setup and replies, and a runtime image on
|
|
Ubuntu 22.04 carrying the checksum-verified `simplex-chat` binary
|
|
|
|
# Future Steps
|
|
|
|
none
|