Reference library / Reference maintenance
Changelog
The project’s change history, rendered directly from its root CHANGELOG.md.
Download the original Markdown or read the version guide. Historical entries retain the component versions they describe.
Slow Thinker is three components, versioned separately (see src/slow_thinker/versions.py):
the Process executor (slow-thinker: planner, prompts of the agents, LLM providers,
storage, database schema), the Analysis generator (slow-thinker-report --analyze: the
analyst, its prompts and answer models) and the Report generator (slow-thinker-report:
views and templates). Every change raises the BUILD number of the components it touches and
is noted here, newest first, with the versions it raises. Each run, analysis and report is
stamped with the version of the component that made it. The package version (pyproject)
names a release of the whole.
-
Documentation — Complete English user and technical reference microsite: the six-stage workflow, report fields and controls, calculation methods, reviewed component versions, real screenshots with provenance, a searchable element directory and this changelog. Documentation-only change; runtime component versions remain unchanged.
-
Report generator 0.1.16 — The run index and the prompt pages redesigned as one "history" view (
history.css.j2, shared): a hero with the counts, two tabs (Runs · Models across runs; on a prompt page, Runs · Full prompt), a toolbar with search, status and sort, and one row per run — participants as model chips, collaboration (agents, rounds, voters), duration, cost and the selected proposal — grouped by prompt in the index and, on a prompt page, with an expandable block of configuration, execution and latest-analysis details. The base page gains blocks for the bar (barmain,barlinks), the page's own styles and body attributes, and the head above the tabs (runhead); the run report and the prompt library use them. -
Configuration —
config/slow-thinker.base.jsonis published as the starting point ("starter 3x2": GPT-5.6 terra, Grok 4.6 and DeepSeek V4 pro, two refinement rounds, Claude Opus 5 as analyst); the 5×4 council it held is thefullprofile, next tocheapandstudy. The example base file goes: the base itself is the example. -
Report generator 0.1.15 — The project is "Slow Thinker", in two words, wherever the pages name it (browser title, brand), as the README has it; the same in the code headers, the docstrings and this log. The package description follows the README's tagline. The docs catch up with the code: the keys file in the README's start (the example base points to it), the Process diagram in the table of views, the early-stage note; in the guides, the four final calls of the analysis, the ⓘ icon, the notes only in old runs, the cheap profile's analyst,
thinking_budget: 0and the temperature rule of Claude, and what happens with a missing key. -
Report generator 0.1.14 — The GitHub mark (inline SVG, nothing loaded) before the repository link in the footer.
-
Report generator 0.1.13 — In the Process diagram the summary of a box (and of a voter) opens from an ⓘ icon in its bottom-right corner, not from the box itself: hovering the box lights the lineage and the tooltip no longer covers it.
-
Analysis generator 0.1.4 · Report generator 0.1.12 — The brief: a last call in which the analyst sums its whole analysis up in at most eight points — the outcome, what happened in the rounds, the problems that matter, the changes that would help — from what it already wrote, nothing new. Stored as
final.brief; the Analysis summary opens with it, and an analysis made before says so where it would go. -
Process executor 0.1.5 — Every timestamp of the trace is time-zone aware (
datetime.now().astimezone()), and PostgreSQL stores the records' own times: the proposals, votes, plans and analyses pass theircreated_at, and a status update setsupdated_atfrom the process clock instead of the server'sCURRENT_TIMESTAMP. Before, a task's naive localcreated_atnext to a UTCupdated_atgave durations of "0 s" in the index and a shifted timeline whenever the database ran in another zone (Docker, the CI). Reported by a reviewer. -
Tooling —
pythonpath = ["."]in the pytest options: the tests importtests.conftest, whichuv run pytest(the CI's command) could not resolve; onlypython -m pytestworked. Reported by a reviewer. -
Process executor 0.1.4 — Claude models with extended thinking (before 4.6) were sent the default temperature 0.7 next to
thinking: enabled, which the API rejects: every call of such an agent or analyst failed unless the configuration said"temperature": 1. Now no temperature is sent with extended thinking, a temperature other than 1 next to it is refused when the configuration is loaded (Provider.check, a hook every provider may refine), and"thinking_budget": 0switches thinking off, with the temperature back. The example configuration's analyst is Claude Opus 5 with high effort. Reported by a reviewer. -
Process executor 0.1.3 — Security: a provider left without an API key (none in its entry, in
api_keysnor in its environment variable) stops the run with aConfigurationErrorinstead of going on as "MISSING"; and a client for a provider at its own base URL (xAI, DeepSeek, Alibaba) is never built without a key, because ChatOpenAI would otherwise pick upOPENAI_API_KEYfrom the environment and send it to that host. Reported by a reviewer. -
Report generator 0.1.11 — The Selected plan tab shows the winner's success metrics (a third pane) and its estimated complexity, and links to the winner's card in its round.
-
Analysis generator 0.1.3 · Report generator 0.1.10 — The process evaluation is a call of its own (asked at the end of the outcome call, Opus 5 left it empty after 15k characters of answer); an empty evaluation is refused. The final summary is asked as a list (one item per proposal, one on what they share). In the report: the Analysis summary opens with "At a glance" (first choice, vote and agreement, against the initial proposals, rounds, process) linking to each section; the blind ranking says how it was obtained and puts "why this order" before the list; the process evaluation says how it was obtained and announces an empty answer instead of showing "none"; each proposal's plan is shown in panes — Graph (open by default) · Steps · Success metrics · Raw prompt and response — under "The plan produced", the selected plan in Graph · Steps; the costs by model join the Totals section and their own section goes.
- Process executor 0.1.2 · Report generator 0.1.9 — The notes are removed from the process: refining agents answer with the plan alone, every previous proposal is shown alike (no "your own previous proposal" mark) and one strict schema serves every round. Reason: a note about a proposal reached the others two versions late, after its author had rewritten once without it; not a feedback loop. The report still shows the notes of the runs that have them (executor up to 0.1.1) and says so in the influence legend; the "no notes" line under proposals goes; the footer drops "static file, nothing is loaded from the network".
- Report generator 0.1.8 — In a proposal's tab, the analyst's ideas are headed "Ideas the analyst saw taken…" / "…saw rejected", and a refined proposal without notes says so where they would be (the run predates the notes, or the model left them out).
- Report generator 0.1.7 — Smaller type in the cells of the influence table (labels 9 px, numbers 11.5 px); the agent names in its column headers are no longer forced to upper case.
- Report generator 0.1.6 — The influence table explains itself: each cell's lines are labelled (same titles · agent says · analyst sees · kept · new) and every number has a tooltip saying what it counts and how it was obtained (titles only, or the whole proposal) and listing the items behind it: the matched steps, the agent's note (verdict, adopted, rejected) or the analyst's ideas with their evidence. The legend names the three sources.
- Process executor 0.1.1 · Analysis generator 0.1.2 · Report generator 0.1.5 — Component
versions:
versions.py; the executor stampsexecutor_versionon the task, the analystanalyst_versionon each analysis (PostgreSQL schema 1.8 adds both columns); the report footer names the three versions that made the page, the About tab too; the indexes say "executor x.y.z" in Made with; this log and a test that every current version is in it. Legends of P1, P2… (the analyst's proposal numbers) in the round summaries and the Analysis tab. - Analysis generator 0.1.1 · Report generator 0.1.4 — The analyst gets its own writing
guidance (skimmable: short sentences, lists, the point before the evidence, proposals and
steps by number) and answers two lists per round: what the proposals share and what
separates them (round 0), what still separates them and who took what from whom
(refinement rounds);
what_changed,improvement_summary,process_evaluationand the vote comment asked as short sentences or lists. Analysis schema 5 (2–4 still rendered). The Round summary shows the lists and, below, one bar per agent with the time of its call against the slowest; the same bars for the voters in the Votes tab. - Report generator 0.1.3 — Tooltips placed from their measured size and kept inside the viewport; a pinned tooltip can be dragged by its head.
- Report generator 0.1.2 — The Process tab is a diagram: lanes per round, a box per proposal, barriers between rounds, lines with the steps taken between proposals, dots listing them, the full lineage of a proposal's steps on hover, selection, zoom and pan.
- Report generator 0.1.1 — Footer as a strip always in view, with the author (linked to the web), the license and the repository, links opening in a new tab; pages start at the doctype.