Skip to content

Still v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Oct 01:23
7d5cbac

Minor release after v0.1.0; milestone v0.2.0 (#258, #262, #271) and everything merged to main since v0.1.0. New for the owner: work mode, an owner-switched mode in which nothing a Work produced is sent out and no undeclared destination is reached (#208); owner-declared intranet destinations admitted by the private-address guards, with every DNS answer of a declared API host checked and pinned and a code run's exact port checked (#209); Claude Code and Codex run through Amazon Bedrock, Microsoft Foundry or Azure OpenAI (#211); Memory kept as append + invalidate, with the upkeep ending rows by id and dated facts ending (#220); every reader given the owner's earlier words for the request and the whole owner profile (#221, #217); working lessons kept in one bounded, revisable notes document (#19); held values found in outbound tool text shown in the information-use audit (#167); a worker-drafted connection disconnect the owner confirms (#183); calendar requests through the worker draft tools with the exact-preview approval kept (#22); analysis-method skills and bounded header reads (#32); a bounded load-more for lazy lists in browser reads (#11); an offer to start Still at login at the end of first setup (#105); independent public reads of one turn run at the same time (#16); company tools through the owner's own local MCP servers, with the Codex server keeping its own HOME and PATH and Claude Code turns started in the default permission mode so Still decides each call (#210); and typing on the phone keyboard straight into the Mac login window from the phone sign-in page (#293). Judgment reads owner acts and situations in context instead of keyword rules (#170, #172, #173, #174). Secret handling: a retired secret is never recalled and the early plan's reads are audited, also when a Work parks or the plan is asked again (#258, #275, #279); exports redact JSON-escaped secrets and rebuild the search index (#271). Fixes include the Telegram Bot API transport on httpx2 and replies queued while Telegram is unreachable (#121, #123), usable Google credentials through renewal failures and write 401s (#8, #246), decoded Gmail bodies (#150), browser typing, press and stop fixes (#12, #102, #103, #244), the iPhone profile token (#13), non-ASCII case folding in result search (#203), an FTS5 statement re-prepared after a concurrent schema change (#262), locale catalog fixes (#10, #235), the phone sign-in link message saying how its session ended and the prompt dropping its buttons while the phone link drives the window (#255), and outbound audit records only after a transport hand-off (#233).

Not claimed: No install of this tag archive was observed before publication; the publish workflow's macOS brew install/brew test and the installer smoke run only after the tag exists, and the owner's own upgrade is not yet recorded. Tests and CI do not prove live external integrations, model-dependent behavior or a background service surviving a restart. In particular, no live Amazon Bedrock, Microsoft Foundry or Azure OpenAI run, no live intranet destination, and no work-mode session on a company network is claimed by this release. No live company MCP server is claimed; #210 was observed locally without a model. The Mattermost and Slack surfaces (#213, #214) are not in it. Known open defects: four predecessor fixes not yet ported, including asking for the current location before using a fitting saved place (#201), and a desktop-only page cropped in the phone-sized login window (#254).

Scope: https://github.com/Jongtae/Still/milestone/2

What's Changed

  • release: install Still v0.1.0 with Homebrew (#55) by @Jongtae in #72
  • release: record published v0.1.0 (#55) by @Jongtae in #73
  • test: build the pre-release state in the first-release script tests (#75) by @Jongtae in #76
  • docs: pin the one-line installer to the commit that installs v0.1.0 (#55) by @Jongtae in #74
  • refactor(research): retire the category research tool for generic search and page reads (#23) by @Jongtae in #77
  • ci(release): merge the record and pin PRs after their checks pass (#79) by @Jongtae in #80
  • ci(pages): move upload-pages-artifact to v5 before Node 20 is removed (#81) by @Jongtae in #82
  • test(login): apply the phone-login guard in the login harness under every runner (#78) by @Jongtae in #83
  • test: keep the phone-login guard when the suite runs under unittest (#84) by @Jongtae in #85
  • docs: keep QUICKSTART's install note on the newest release (#86) by @Jongtae in #87
  • test: apply the phone-login guard once in LoginHarness (#88) by @Jongtae in #89
  • chore(plan): activate BROWSER-REL-01 browser reliability program (#94) by @Jongtae in #95
  • fix(browser): explain why typing did not run and type into focus-editable widgets (#12) by @Jongtae in #98
  • fix(plan): give BROWSER-REL-01 its milestone and update the selection note (#100) by @Jongtae in #101
  • fix(browser): report a press that landed on another element as covered, not changed (#102) by @Jongtae in #104
  • fix(start): skip the setup intro with nothing to ask; blame only the latest restart (#90) by @Jongtae in #91
  • docs(release): record the owner's v0.1.0 Homebrew install (#92) by @Jongtae in #93
  • feat(browser): let a read load more rows of a lazy list within explicit bounds (#11) by @Jongtae in #99
  • fix(browser): send the frozen iOS token and an iPhone platform with the phone profile (#13) by @Jongtae in #108
  • chore(plan): close out BROWSER-REL-01 (#94) by @Jongtae in #109
  • fix(service): name start-at-login after brew install and record the running agentos (#96) by @Jongtae in #97
  • build(actions): bump Vampire/setup-wsl from 7.0.0 to 7.2.0 by @dependabot[bot] in #112
  • build(deps): bump claude-agent-sdk from 0.2.166 to 0.2.168 by @dependabot[bot] in #110
  • build(deps): bump pypdf from 6.19.0 to 6.20.1 by @dependabot[bot] in #111
  • feat(setup): offer to start Still at login at the end of first setup (#105) by @Jongtae in #106
  • chore(plan): activate QUALITY-CORE-01 (#115) by @Jongtae in #116
  • chore(plan): record the #22 decision and run #21 before #22 (#115) by @Jongtae in #118
  • fix(browser): confirm a press only by a click on its target (#103) by @Jongtae in #120
  • fix(skills): keep delivery fee apart before a final-price claim (#25) by @Jongtae in #117
  • fix(telegram): adopt httpx2 for the Bot API transport (#121) by @Jongtae in #125
  • refactor(service): run a Work through named execution phases (#21) by @Jongtae in #119
  • fix(worker): recheck time-sensitive claims after conflicting owner feedback (#24) by @Jongtae in #124
  • fix(telegram): keep a reply queued while Telegram is unreachable (#123) by @Jongtae in #126
  • fix(deps): move the claude-agent-sdk runtime check and record to the 0.2.168 pin (#129) by @Jongtae in #130
  • fix(worker): a source's own live status counts as observed at retrieval (#24) by @Jongtae in #127
  • fix(worker): explain when several service views are one evolving item (#15) by @Jongtae in #128
  • refactor(telegram): move Telegram ingestion, callbacks and delivery to telegram_surface (#21) by @Jongtae in #133
  • feat(skills): analysis methods, bounded header reads and advisory method gap (#32) by @Jongtae in #131
  • refactor(store): put the Telegram tables behind TelegramStore (#21) by @Jongtae in #134
  • ci: run the full suite in parallel with pytest-xdist (#135) by @Jongtae in #137
  • perf(runtime): run a turn's independent public reads at the same time (#16) by @Jongtae in #140
  • feat(calendar): route calendar requests through the worker draft tools; keep the exact-preview approval (#22) by @Jongtae in #139
  • chore(plan): close out QUALITY-CORE-01 (#115) and activate STEADY-01 (#132) by @Jongtae in #141
  • fix(google): keep a usable refresh credential through transient renewal failures (#8) by @Jongtae in #145
  • feat(owner-model): keep working lessons in one bounded, revisable notes document (#19) by @Jongtae in #144
  • fix(locale): connection errors and remaining fixed lines from the shared catalog (#10) by @Jongtae in #146
  • fix(locale): tell ja/zh owners the calendar reply words the parser accepts (#10 follow-up) by @Jongtae in #147
  • chore(plan): close out STEADY-01 (#132) by @Jongtae in #148
  • fix(worker): check every match before answering about the owner's records (#136) by @Jongtae in #138
  • fix(mail): let the worker read decoded Gmail bodies (#150) by @Jongtae in #152
  • chore(plan): activate CHECKS-01 (#157) by @Jongtae in #159
  • test(agent): measure what the completion checks add per request shape (#16) by @Jongtae in #162
  • fix(tests): end the parallel-suite races at their cause (#142) by @Jongtae in #163
  • ci(full-validate): only real-WebKit classes serial, faster fixture servers (#156) by @Jongtae in #165
  • chore(plan): close out CHECKS-01 (#157) by @Jongtae in #166
  • chore(plan): activate BROWSE-AUDIT-01 (#168); record the owner check on #143/#149 by @Jongtae in #169
  • feat(information-use): show held values found in outbound tool text (#167) by @Jongtae in #178
  • test(guard): catch natural-language cue tables in kernel code (#171) by @Jongtae in #176
  • fix(worker): look again when a correction changes an earlier lookup's scope (#153) by @Jongtae in #158
  • fix(judgment): never ask the owner again for the step they just took (#155) by @Jongtae in #161
  • fix(self-review): a step the owner already took that still failed is a blocker, not a lesson (#154) by @Jongtae in #160
  • fix(judgment): read this Work's own events and what it awaits (#170) by @Jongtae in #177
  • chore(plan): close out BROWSE-AUDIT-01 (#168) by @Jongtae in #180
  • chore(plan): activate IN-CONTEXT-01 (#175) by @Jongtae in #184
  • fix(owner-act): one judgment reads each owner act against everything pending (#172) by @Jongtae in #179
  • refactor(intent): retire keyword intent rules; the worker answers (#173 slice A) by @Jongtae in #181
  • refactor(continuity): judge how a message relates to earlier Work (#173 slice B) by @Jongtae in #185
  • refactor(projection): close the answer in the judgment's words (#173 slice C) by @Jongtae in #187
  • fix(browser): a page confirm follows the step's declared effect; judgment adds payment approval (#174) by @Jongtae in #186
  • chore(plan): close out IN-CONTEXT-01 (#175) by @Jongtae in #189
  • docs(governance): escalated reviews are Codex reviews; the owner merges (#195) by @Jongtae in #196
  • ci: show a green codex-review status when Codex has reviewed the exact head (#207) by @Jongtae in #215
  • fix(owner-act,browser): answer the Codex findings left open on PR #179 and #186 (#188) by @Jongtae in #200
  • feat(settings): let the worker draft a connection disconnect the owner confirms (#183) by @Jongtae in #194
  • fix(telegram): say a reopened sign-in at the bottom of the chat (#192) by @Jongtae in #193
  • refactor(presence): drop the per-step progress-reaction judgment (#219) by @Jongtae in #224
  • fix(judgment): the outcome judgment reads which listed items were opened and read through (#151) by @Jongtae in #190
  • ci(codex-review): trust only the exact Codex App identity; recompute on deleted replies (#207) by @Jongtae in #216
  • fix(memory): give every reader the whole owner profile, one selection (#217) by @Jongtae in #223
  • chore(plan): activate WORKPLACE-01 (#206) by @Jongtae in #218
  • ci(validate): run the full Linux test suite in the required check (#234) by @Jongtae in #249
  • feat(engines): run Claude Code and Codex through Amazon Bedrock, Microsoft Foundry or Azure OpenAI (#211) by @Jongtae in #230
  • fix(owner-mcp): block a Codex MCP call when the decision process fails (#222) by @Jongtae in #225
  • feat(memory): append + invalidate — the upkeep ends rows by id and dated facts end (#220) by @Jongtae in #226
  • fix(google): keep a usable credential after a write 401 and non-grant 400s (#246) by @Jongtae in #253
  • feat(context): give every reader the owner's earlier words for the request (#221) by @Jongtae in #227
  • chore(plan): add post-closeout audit notes to four program records (#250) by @Jongtae in #252
  • refactor(surface): name a channel-neutral conversation surface; Presence follows its capabilities (#212) by @Jongtae in #229
  • fix(locale): translate multi-line catalog messages as one block (#235) by @Jongtae in #251
  • test(plan): run the active-substep invariant in the shared goal-shape check (#231) by @Jongtae in #232
  • chore(plan): record CLOUD-AI-01 merged; SURFACE-SEAM-01 in flight (#206) by @Jongtae in #256
  • fix(notes): hold the notes notice until the reply settles; no save while the move retries (#233) by @Jongtae in #267
  • docs(review): make the Codex review advisory outside escalated review; add review guidelines (#264) by @Jongtae in #266
  • ci(validate): run the whole Linux suite only when code changes (#260) by @Jongtae in #261
  • chore(plan): record SURFACE-SEAM-01 merged; none in flight (#206) by @Jongtae in #268
  • fix(audit): record outbound attempts only after a transport hand-off (#233) by @Jongtae in #257
  • fix(calendar): show the exact sent time in the approval preview (#233) by @Jongtae in #263
  • fix(audit): mark a network's own pre-send refusals not run (#233) by @Jongtae in #270
  • fix(context): never recall a retired secret; audit what the early plan read (#258) by @Jongtae in #259
  • fix(store): prepare a statement again when FTS5 hides a concurrent schema change (#262) by @Jongtae in #273
  • fix(judgment): namespace read-state identities by kind; reserve its room before page text (#204) by @Jongtae in #276
  • fix(browser): the owner's Stop ends a running load-more at its next round (#244) by @Jongtae in #274
  • fix(memory): the upkeep and self-review select the profile by the Work's request (#241) by @Jongtae in #277
  • feat(work-mode): an owner-switched mode with no external exposure or undeclared egress (#208) by @Jongtae in #278
  • fix(files): fold non-ASCII case in result search; a source read error keeps state (#203) by @Jongtae in #272
  • fix(work-mode): never send what a Work produced while work mode was on; reconcile the switch; gate rehearsal on the owner (#208) by @Jongtae in #280
  • ci: remove the informational codex-review status (#281) by @Jongtae in #282
  • fix(export): redact JSON-escaped secrets and rebuild the search index (#271) by @Jongtae in #283
  • feat(intranet): owner-declared intranet destinations admitted by the private-address guards (#209) by @Jongtae in #284
  • fix(remote-login): say on the phone link message how its session ended (#255) by @Jongtae in #285
  • chore(release): prepare v0.2.0 (#286) by @Jongtae in #287
  • fix(intranet): check and pin a declared host's API addresses; check the exact code-run port (#209) by @Jongtae in #288
  • fix(audit): keep what the early plan read when a Work parks or the plan is asked again (#275, #279) by @Jongtae in #289
  • fix(remote-login): the prompt drops its buttons while the phone link drives the window (#255) by @Jongtae in #291
  • feat(remote-login): type straight into the window from the phone keyboard (#293) by @Jongtae in #296
  • fix(owner-mcp): a Codex server's own location env; Claude Code turns name the default permission mode (#210) by @Jongtae in #297
  • ci(validate): keep a run for every main commit (#292) by @Jongtae in #294
  • chore(release): prepare v0.2.0 on main with #288, #289 and #291 (#286) by @Jongtae in #295

Full Changelog: v0.1.0...v0.2.0