Repository navigation
Releases
v0.2.0
v0.2.0
Learning, memory and context are rebuilt around what can be measured at
this account's volume.
- Episodes: each live post and reply is ranked at its 1h, 6h or 24h metric
window against the agent's last 50 actions of the same kind (top, mid,
bottom). Code computes it; no model fit, no minimum of weeks. - Lessons are the only text the agent keeps. The daily dream adds, confirms
or retires at most 10 lessons, each citing 2 to 5 ranked episodes whose
band agrees with it; numbers must be counters on the cited actions, no
refs or dates. Unused, unconfirmed lessons expire. post and reply may cite
lesson_ids, and the writer sees those lessons; use stats compare applied
actions with the others. - The dream runs only after 8 new ranked actions, reads no Threads, and
stops at 8 steps. - Agent context is an ordered message: lessons, best and worst episodes of
48 hours, the last 10 results, the start of the last 10 own texts, then
counters, scoreboard and inbox. - Owner: Telegram /lessons and /forget (a forgotten lesson is never
re-added); daily report on episodes and lessons; dashboard Lessons panel
and band chips; ctl lessons. Cached input tokens are parsed, priced and
shown, and prompt_cache_key is sent to OpenAI. - Removed: playbook and hypotheses, outcome model and post-mortem, memory
index, notes and embeddings, strategy, craft knowledge, the study phase,
exploration, /restore, ctl memory restore and strategy revert.
Manual step: stop threadz and threadz-dashboard, back up the database and
the template, run deploy/migrate-12.sql with sqlite3 -bail, run
deploy/patch-template-v12.py on the live template, install the binary, run
threadz check, then start both services (docs/operations.md).
v0.1.16
v0.1.16
Memory stays clean, and content changes can be previewed on real briefs.
- No forced writes: the wake no longer has to end with memory_add or
note_write, and the stop check no longer asks for a "why" note. - memory_add is a dream-only tool. note_write, strategy_write and memory_add
refuse per-wake refs (r58) with stale_ref; note topics starting with a date
are refused with dated_topic. - Memory and notes load only in the mode they were written in (dry run or
live), using the agent's actions as the clock. - The trace keeps each brief, every draft and the critic's verdict.
wake-export --briefs and the live-only briefs suite replay recent briefs
through the current writer and critic.
No schema change. The live template's research-focus line no longer asks for
memory_add.
v0.1.15
v0.1.15
The account changes voice and lane, and stops replying for volume.
- Persona Hóng Hớt: a GenZ insider in the thread, any trend Vietnamese GenZ is
discussing. The template is the one owner of register; contradicting rules
are gone. The bio label is "AI tự chạy". - The critic fails obvious, safe or outsider drafts for posts and replies
alike, and the writer must keep the brief's concrete detail. - Reply targets are no longer scored on the template's own keywords.
- At most limits.replies_per_hour (6) replies an hour. When the newest 15
measured actions earn fewer than 2 likes and replies, replies pause for 6
hours and the owner is told. One stop nudge per wake, none when on target.
No schema change. The live template needs the new persona and limits keys.
v0.1.14
v0.1.14
First fixes from the design review: one action scope, one day, and a writer
that sees its own replies.
- The wake context lists only actions of the template's mode (dry run or live)
that did not fail; the omitted count can no longer go negative. - The writer, critic and ideas see the last 20 own posts and replies, and a
draft ending in the same emoticon or words as 3 of the last 10 goes back to
the writer before the critic. - Every daily cap (posts, replies, browser replies, one reply per thread, spend)
counts on the local day in schedule.timezone, and the times the model reads
are in that zone. - Wake transcripts record the turns code injects into the conversation and the
system prompt. - API timestamps parse into time values; an unknown format is skipped and
counted instead of passing through. ctl capture-api records redacted live
API responses as test fixtures.
No schema change.
v0.1.13
v0.1.13
Dream lessons are no longer refused for naming a date or an id.
- The lesson gate ignores ISO dates, action and note ids and short refs such as
r69; any other number must still be a counter measured on the cited action.
No schema change.
v0.1.12
v0.1.12
The Behind the scenes cards read cleanly on a phone.
- Tools: the table no longer pushes its first column off screen.
- Runs fit one line per run; Held back, Cost, Learning and Trends use plain
labels instead of internal terms, and older items show a count.
No schema change.
v0.1.11
v0.1.11
The agent stops looping in one conversation, and comment replies are counted.
- The agent replies at most limits.replies_per_conversation (2) times under
one root post, unless its first reply there reached conversation_hot_likes
(5) or conversation_hot_replies (3). The inbox no longer lists replies from a
conversation at the cap. - The replies counter of the agent's own comments comes from their direct
replies; Threads insights reports 0 for them. - The owner report's totals count only live actions, and the dashboard no
longer shows the "Stats at 1h, 6h and 24h" line.
Manual step: schema 10 -> 11. With the service stopped, run
ALTER TABLE actions ADD COLUMN root_url TEXT NOT NULL DEFAULT ''; PRAGMA user_version=11;
on the database before starting this binary.
v0.1.10
v0.1.10
Spend follows the local day, the dashboard follows the viewer's clock, and the
agent knows when it may post next.
- The daily spend cap counts from 00:00 to 24:00 in schedule.timezone instead
of the UTC day (07:00 in Vietnam). Post and reply caps stay on the UTC day.
On the switch day spend may be attributed to the wrong local day for up to
seven hours; there is no data migration. - Dashboard times show in the browser's timezone, with the server's time as
the fallback when scripts do not run. The page now serves one small script
of its own (CSP script-src 'self'). - The wake scoreboard says when the next post is allowed, or that today's post
cap is used, so the agent replies instead of drafting a post that would be
refused. - Every inbox poll is logged, and wake-diagnose shows a reply that waited for
spacing and then published as ok.
No schema change.
v0.1.9
v0.1.9
Posts must clear a higher bar before they publish.
- A post needs the editor's hook and novelty scores at 4 or more. A safe,
flat post goes back to the writer with a note to take a stance or ask the
question people have. Replies are unchanged.
No schema change.
v0.1.8
v0.1.8
The agent sees and answers people who reply to it.
- Replies to the agent were all dropped: the Threads API's timestamp format
(+0000) failed to parse, so the inbox was always empty. Timestamps from the
API are now normalised, and replies reach the next wake.
No schema change.