Skip to content

Releases: Hankaws/aperture

Aperture 0.7.0

Choose a tag to compare

@Hankaws Hankaws released this 01 Nov 11:52
c43244d

Aperture Bot learns what you want. Dismiss an idea, or close one of its pull requests without merging, and the daily brief stops offering it. Merge its pull requests or tick its ideas, and the brief offers more of the same kind first (tests, bug fixes, docs, cleanups or features). Next up on the Bot page orders ideas the same way and says why.

Under Automation, "What your bots learned" shows all of it: the kinds of work you took in the last 30 days and what they were learned from, and what the brief leaves out, with Forget to take a dismissal back. The bot changes ship in Aperture Bot v1.9 (Hankaws/aperture-bot@v1).

Added

  • Aperture Bot learns what you do not want. Dismissing an idea on the Bot page (in Ideas, or Not now on Next up) also strikes it out of the bot's reply on GitHub, so it stays dismissed on every device, and the daily brief no longer offers what you turned down in the last 30 days: ideas struck out, and its pull requests closed without merging. Restore puts the idea's box back. The reply's signature still holds; a struck idea can no longer be ticked. Needs Aperture Bot v1.9. (#172)
  • Aperture Bot learns what you like too. The daily brief is told which kinds of work you took in the last 30 days (tests, bug fixes, docs, cleanups or features), from its pull requests you merged and the ideas you ticked, and offers ideas like those first. On the Bot page, Next up puts ideas of the kinds you take most first and says so. Ideas an always-allow setting started are not counted. Needs Aperture Bot v1.9. (#173)
  • The Bot page shows what your bots learned, under Automation: the kinds of work you took in the last 30 days, with the pull requests and ideas they learned it from, and what the daily brief leaves out (ideas you dismissed, pull requests closed without merging). Forget puts a dismissed idea back, on GitHub and in the Ideas inbox. (#174)

Every change, newest first: CHANGELOG.md

Aperture 0.6.0

Choose a tag to compare

@Hankaws Hankaws released this 01 Nov 09:57
554d5a5

Aperture Bot works more like a teammate. Star a main bot and it greets you on Next up with the work across all your repositories, most urgent first, each one click from the bot that looks after it. Reply to the bot without /aperture ("yes", "do the second one", "why?") and it follows the thread. Its daily brief, red CI and the pull requests it opens unasked can go to a Slack channel, and on Mondays the brief says what it did in the last seven days.

Automation on the Bot page turns on every bot's daily brief doing its top idea at once, one pull request per repository. The bot changes ship in Aperture Bot v1.8 (Hankaws/aperture-bot@v1).

Added

  • A main bot, as Grok has one. Star a bot on its profile and it leads your team: first in the roster, and the face of Next up, a new view on the Bot page that plans your work across every bot's repository, most urgent first (red CI's fix, pull requests the bots opened that wait for your review, a review's likely bugs, then the other ideas), each one click away and handed to the bot that looks after that repository. With a main bot, the page opens on Next up. (#170)
  • Aperture Bot posts to Slack. With "Post to Slack" on the Bot page (slack-webhook and a SLACK_WEBHOOK_URL secret), the daily brief (with the Monday digest), a red run it explained, and a pull request it opened without being asked are posted to a Slack channel too, each linking back to GitHub. Only a Slack webhook address is posted to, it is never logged, nothing from GitHub or the model can ping or link there, and Slack being down never fails a run. (#169)
  • Aperture Bot can follow its own threads, as Grok's bots do. With "Follow its own threads" on the Bot page (follow-threads: true), you reply to the bot without /aperture: "yes" or "do the second one" does that suggestion, as ticking it would, and anything else is answered with the reply it follows in mind, changing nothing. It follows only whoever it answered (anyone who can write, on threads it started), never a comment that @mentions someone, and never anyone who cannot write. (#168)
  • A weekly digest in Aperture Bot's daily brief: on Mondays the brief also says what the bot did in the last seven days (pull requests opened, merged or waiting, likely bugs caught, what it answered and checked), in the Bot page's own words, so it reaches you in GitHub's notifications without opening Aperture. It is counted from the bot's own replies, with no model call. (#167)
  • Automation on the Bot page: one switch turns on every bot's daily brief doing its top idea without asking, or turns it off again. It shows where each repository's brief stands, then opens one pull request per repository that needs it, on its bot workflow and keeping its other jobs; a repository whose schedule runs another job is left as it is, and a pull request from an earlier switch that is still open is shown rather than opened again. Needs Aperture Bot v1.7. (#166)

Every change, newest first: CHANGELOG.md

Aperture 0.5.0

Choose a tag to compare

@Hankaws Hankaws released this 31 Oct 19:05
fa41494

Aperture Bot thinks ahead for you. Its daily brief can now do its own top idea without asking ("Do the top idea without asking" on the Bot page), one pull request at a time and only when Aperture Agent Check is clear. The Bot page gathers every suggestion your bots make into an Ideas inbox to do or dismiss in one click, and Activity opens with the last seven days at a glance: pull requests opened and merged, likely bugs caught, and what was answered.
The bot's suggestion lists are now signed, so only a list it made itself can be ticked, and ticking an idea in the daily brief no longer closes the brief's issue. The bot changes ship in Aperture Bot v1.7 (Hankaws/aperture-bot@v1).

Added

The Bot page's Activity starts with the last seven days at a glance: pull requests the bots opened (merged, waiting for review, closed), likely bugs their reviews caught, questions, new issues and red runs answered, and pull requests checked, with the daily briefs and ticked suggestions under them. Every number is counted from what the bots posted. (#164)
An Ideas inbox on the Bot page: everything your bots' replies still suggest across the team's repositories (daily briefs, answers, reviews, red CI), newest first, with a count in the sidebar. Do it asks the bot on GitHub, on the thread the idea is about or in a new issue (never on the brief's own issue); Dismiss hides an idea in this browser, even when tomorrow's brief offers it again, and Restore brings it back. An idea someone has ticked, sent or had done since leaves by itself. (#162)
Aperture Bot can act on its daily brief without asking. With "Do the top idea without asking" on the Bot page (always-allow: brief), each brief's first idea from the code becomes a pull request at once, only when Aperture Agent Check is clear and one at a time: nothing new starts while the last one waits for review. An idea that names an issue still waits for a tick, since anyone can write an issue, and the brief now lists the idea most worth doing first. A box started by an always-allow setting names the setting instead of @mentioning a user called always-allow. (#161)

Fixed

Ticking an idea in Aperture Bot's daily brief no longer closes the brief's issue: the pull request it opens says where the idea came from instead of "Fixes" the brief, so the next brief posts on the same issue. (#163)
On the Bot page, a bot whose daily brief was posted in one go no longer shows as queued in the roster: the team's feed keeps an outcome before its ask at the same moment. (#162)
A ticked box starts Aperture Bot's work only in a list the bot itself made on that thread: its suggestion lists are signed with a key derived from its model key, so another bot's look-alike comment, or a list copied from another thread, starts nothing, and the bot replies with the task for you to ask for if you meant it. Suggestions posted before this are no longer tickable. (#160)

Every change, newest first: CHANGELOG.md

Aperture 0.4.0

Choose a tag to compare

@Hankaws Hankaws released this 31 Oct 10:28
26de70b

Aperture Bot now works without being asked: it reviews pull requests, replies to new issues, explains a red default branch, and posts a daily brief of what needs you, ending every reply with suggestions you tick to have it do them. Get it with Hankaws/aperture-bot@v1 (v1.5), or switch the jobs on from the Bot page.
Subscribers can also switch plans from the pricing table, paying twice no longer leaves two subscriptions, and long agent turns wrap up before the server's time limit instead of being cut off.

Added

Aperture Bot's daily brief. The look-over job ("Daily brief" on the Bot page, now daily by default) posts each morning what needs you, read from GitHub (CI on the default branch, pull requests waiting longest, issues quiet for two weeks), and up to five ideas from reading the code (likely bugs, untested paths, TODOs, open issues), each a box to tick. "Fix it without asking" (always-allow: red) has the bot fix a red default branch at once instead of waiting for a tick. (#157)
Aperture Bot reviews pull requests. /aperture review, or every push with "Review every pull request" on, posts a GitHub review with a comment on the line of each likely bug (only what it is at least 80% sure of) and a reply with each fix as a box to tick. It changes nothing, reads a fork's changes without running them, and does not repeat a comment already on its line. (#156)
Aperture Bot can work unasked. With "Reply to new issues" on, it reads each new issue and the code and replies with what it would do (or asks for what is missing), its first box being the issue itself to tick. With "Explain red CI" on, a workflow that fails on the default branch is explained on the bot's own issue, once per red commit, with the fix to tick. Both change nothing on their own and stop at 20 replies a day (daily-limit). (#155)
Aperture Bot answers questions and takes suggestions with one tick. Comment /aperture why does the login test fail? and it answers on the thread from the code, the diff and the failing checks, changing nothing. Every reply ends with what it would do next as boxes: tick one and it does it, as if you had asked with /aperture. Ticking needs the workflow to listen for edited comments, as the Bot page's and the README's now do. (#154)
Subscribers can switch between Pro and Team, or between monthly and yearly, from the pricing table: Paddle prices the change first ("You pay $18.50 now for the rest of this period"), and Settings → Plan shows the switch once Paddle confirms it. (#153)

Fixed

Aperture Bot can no longer be made to @mention people: text it did not write itself (the model's words, issue titles, review notes) has its mentions made inert, and an HTML comment in it can no longer hide the bot's boxes. Replies nobody asked for queue one at a time, so a burst of new issues cannot slip past daily-limit, spend at most 150,000 tokens each, and say to read a suggestion before ticking it. (#158)
Paying twice no longer leaves a second subscription charging every month: a second live subscription for the same account is cancelled the moment Paddle reports it, and buying again while a checkout is open reopens that checkout, or says the payment already went through. (#153)
A long agent turn wraps up before the server's time limit and keeps what it staged, instead of being cut off mid-reply; a test run is shortened, or left for the next turn, when there is not enough time left. A reply that still ends early says it was cut off and offers Retry, and an external agent that cannot start now shows why. (#152)
Signed in, the editor no longer rebuilds its whole layout as it opens, and on a phone it no longer flashes "Sign in": the phone account button waits for the session, as the desktop bar does. (#151)

Every change, newest first: CHANGELOG.md

0.2.0

Choose a tag to compare

@Hankaws Hankaws released this 06 Oct 15:03
959e761

Added

  • Version numbers. This changelog marks each release, the release notes on GitHub are built from it, and the site's footer shows the version. (#30)
  • The first time the checks appear, one line says what they are: what green, red, amber and a dash mean, and that nothing has touched your files yet. (#29)
  • The landing page shows the benchmark's numbers, read from the benchmark itself, and links every case. (#29)
  • A changelog, here and at /changelog. (#28)
  • Plan first switch in Composer, on by default and remembered per browser, in place of the Plan / Build / Iterate buttons. Turn it off to have Composer edit straight away; nothing is applied until you Apply either way. (#27)
  • A fix now starts from the evidence. When a check is red, the agent gets every new issue, a failing test's message with its stack mapped to your files and lines, and the code here it broke, not only one line. (#24)
  • Script errors in the live preview point to the line of your script file that threw, and every Composer turn is told about them. (#24)
  • A Security page: the threat model, the sandboxes, what the checks cannot catch, and how to report a vulnerability. (#26)
  • Background runs. Send a task and keep working. Each runs on its own copy, is checked, gets one automatic fix if a check is red, and waits on the agent board for you to open it. Your edits made meanwhile are merged in. (#23)
  • Hooks. .aperture/hooks.json runs project scripts on save and as a check on every staged change. (#22)
  • Rules for some files. .aperture/rules/\*.md with files: globs reach Composer only when a turn touches a matching file. (#22)
  • A public benchmark of how often the checks stop a bad edit, with every case listed, misses included. (#21)
  • The Types check runs the real TypeScript compiler, in a worker in your tab, across files. (#20)
  • A model on your own computer (Ollama, LM Studio) from the hosted site; the agent loop runs in your tab. (#19)
  • Editable plans: reword, reorder, remove or add steps before Build it. (#18)
  • Check problems in the editor margin, with F7 to move between them. (#18)
  • An agent board (Ctrl/Cmd+J) with every run by stage, and side-by-side compare of two staged runs. (#18)
  • Pull requests driven to green: the status bar watches CI, and a failure can be sent to Composer with its annotations and log. (#18)
  • Light and follow-system themes. (#17)
  • Privacy and Terms pages, and account deletion in Settings. (#5, #6)
  • Cmd/Ctrl-click a relative import to open that file. (#12)
  • A diff review in one short pass: a note is kept only for a likely bug, and can be posted on the pull request. (#3)
  • Parse, imports and types run inside the agent's own turn, so a red check gets one more step before the turn ends. (#4)

Changed

  • The site and README say what Types is now: the TypeScript compiler, not a light check. The model section mentions a model on your own computer. (#29)
  • On a phone, a first visit opens Composer and its demo tasks instead of a file. (#29)
  • Touch screens start with the comfortable density. (#29)
  • Signed out, the editor shows two sign-in links instead of three identical ones: the header's, and "Sign in to send" in Composer. (#29)
  • The editor loads less up front: the zip library loads when you download. (#29)
  • Composer's lessons (.aperture/lessons.md) stay out of what is sent to GitHub unless you tick them in, and never ride along with a CI fix. (#27)
  • Privacy and Security are separate pages, and Privacy states plainly what passes through the server after sign-in. (#26)
  • The landing page no longer downloads the editor, and every server input is checked against a schema. (#17)
  • An edit is staged only when the agent is sure of it (confidence 0.8 or more), and Apply stays off while any check is red or still running. (#10, #12)
  • A check fails only for problems the change brought in; problems the file already had show amber and do not block Apply. (#14)
  • The README and the site describe all five checks, and say what Types does. (#8)
  • No shared Grok key: the demo plays recorded runs, and everywhere else uses your own key. (#9)
  • A demo GIF and video at the top of the README. (#11, #16)
  • The site leads with the checks, and the demo shows no prices. (#1)
  • A send uses the key saved on your account, and stops if it is missing. (#4)

Fixed

  • Someone could sign up with another person's email and a password, and when that person later signed in with Google or X they landed in that account. A sign-in now joins an existing account only if its email was confirmed; otherwise the sign-in page says why and nothing is joined. (#30)
  • Signed out on a phone, the top bar no longer runs off the edge of the screen; Pricing is in the footer there. (#30)
  • Background jobs on Pro could stall once the server had answered. They are now kept alive, and a job the server ended says so instead of showing "running" forever. (#27)
  • After a send to GitHub, only what was sent is recorded as in the repository. (#27)
  • A check replaced by a newer change could still finish and show its old result, such as type errors in the margin from an earlier change. (#25)
  • A stopped background run could come back as ready, and one restored after a reload never aged out. (#25)
  • Preview errors could point at the wrong line after a stylesheet changed. (#25)
  • The GitHub token is no longer kept in the browser's storage. (#17)
  • An agent endpoint can no longer reach the server's own network, and every user-supplied endpoint is pinned to the address that was checked. (#7, #13)
  • Revert refuses instead of discarding edits made after the commit. (#15)
  • The light checks no longer misread ordinary code, and three GitHub round-trip bugs are fixed. (#14)
  • The demo's recap no longer lists finished steps as left. (#13)
  • The sign-in error log no longer records part of the session cookie. (#6)
  • A custom model endpoint no longer follows redirects, so it cannot bounce your key to another address. (#2)