diff --git a/TODO.md b/TODO.md index ae63ce7..e486c4e 100644 --- a/TODO.md +++ b/TODO.md @@ -12,6 +12,9 @@ # M6 — Fan-out +- Loopback address per task instead of port blocks + Give each task its own loopback address (127.0.0.10, 127.0.0.11, …) where it runs servers on their usual ports, in place of the ten-port block it gets now. On macOS only 127.0.0.1 is configured on lo0: binding 127.0.0.10 fails with "Can't assign requested address" (errno 49) until an alias is added (`sudo ifconfig lo0 alias 127.0.0.10 up`), and aliases are gone after a reboot. So byre needs a root step that adds the aliases at every boot (a LaunchDaemon installed with the app, or the server's install step), and a check that they're there. Test it first: add an alias, bind a server to it on a common port while another task holds the same port on another address, and confirm the preview forwards and `expose_port` work with it. + # M7 — Inbox triage diff --git a/site/index.html b/site/index.html index 576e4ff..b51421d 100644 --- a/site/index.html +++ b/site/index.html @@ -751,6 +751,119 @@ details[open] .more { .log .row:nth-child(4) { animation: log-4 8s infinite; } +.fig .dim { + color: var(--muted); +} +.fig .dim i { + background: var(--border); +} +.app { + position: relative; + display: grid; + grid-template-columns: 1fr 1fr; +} +.pane { + padding: 12px; +} +.pane + .pane { + border-left: 1px solid var(--border); +} +.pane.behind { + opacity: 0.4; +} +.tabs { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-bottom: 10px; +} +.sheet { + position: absolute; + top: 0; + bottom: 0; + left: 10%; + right: 50%; + padding: 12px; + border-left: 1px solid var(--c); + background: color-mix(in srgb, var(--c) 8%, var(--bg)); + box-shadow: -6px 0 18px color-mix(in srgb, var(--text) 10%, transparent); +} +.sheet .label { + margin-bottom: 6px; + font-weight: 700; +} +.pageview .bar .chip { + margin-left: 0; +} +.mock { + display: grid; + gap: 10px; +} +.mock .cards { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 8px; +} +.mock .cards span { + height: 64px; + border: 1px solid var(--border); + border-radius: 6px; + background: var(--surface); +} +.mock .cards .on { + border-color: var(--c); + background: color-mix(in srgb, var(--c) 14%, var(--bg)); +} +.mock .lines span { + display: block; + height: 8px; + margin-top: 6px; + border-radius: 4px; + background: var(--border); +} +.mock .lines span:last-child { + width: 60%; +} +.brow { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 10px; +} +.box { + padding: 8px; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--surface); + color: var(--muted); + text-align: center; + font-weight: 700; +} +.box small { + display: block; + font-size: 12px; + font-weight: 400; +} +.box.mid { + grid-column: 2; +} +.box.on { + border-color: var(--c); + background: color-mix(in srgb, var(--c) 14%, var(--bg)); + box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent); + color: var(--text); +} +.link { + width: 0; + height: 22px; + margin: 0 auto; + border-left: 2px dashed var(--c); +} +.highlights { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-top: 14px; +} @keyframes steer { 0%, 4% { @@ -1044,15 +1157,15 @@ footer {
  • -

    Every server, every project

    Your servers sync through iCloud, so a new Mac finds them on first launch. Switch between servers in one window, each with as many projects as you like and its own color.

    +

    Every server, every project

    One server or five, every project shows up in one window, color-coded, on every Mac on your iCloud account.

      -
    • Already there. Servers sync through iCloud, so a new Mac finds them all on first launch.
    • -
    • One window. Switch between every server and all of its projects without leaving it.
    • -
    • Color-coded. Each server wears its own color, so you always know which one you're on.
    • +
    • New Mac, no setup Your servers are waiting on first launch, with nothing to type in.
    • +
    • Hop between them A picker or a shortcut flips servers and projects without opening another window.
    • +
    • Know where you are Each server wears its own color, so a glance tells you which one you're on.
  • -

    Tasks

    Every task gets its own git worktree, branch and port block. Talk to its agent in a live transcript, even mid-turn.

    +

    Tasks

    Start one for every idea. Each gets its own branch and worktree, so ten agents never step on each other, and you can chime in while it works.

      -
    • Isolated. Its own worktree, branch and ports, so parallel tasks never collide.
    • -
    • Talk mid-turn. Message the agent while it works and it takes the note on board.
    • -
    • As many as you like. Start another whenever an idea strikes; they all run at once.
    • +
    • Any agent you like Claude Code, Codex or Antigravity, with the model picked per task.
    • +
    • Interrupt politely Send a note mid-turn and the agent folds it in without starting over.
    • +
    • Shell included Open terminals in the task's worktree, and save the commands you run often.
  • @@ -1135,9 +1248,9 @@ footer { @@ -1164,9 +1277,71 @@ footer { + + + +
  • +

    Room to focus

    Two panes, side by side: your lead on the left, one task on the right. No sidebars, no toolbars, no maze of panels. Diffs, files and terminals slide in when you ask for them and slide away when you're done.

    +
    + +
      +
    • Nothing to arrange No panels to drag or resize: the same layout on a laptop and a 6K display.
    • +
    • Peek, then back Pull up a diff over the lead, take a look, and click the strip beside it to put it away.
    • +
    • ⌘K to anywhere Type a few letters to jump to any task in any project.
    • +
    +
    +
  • + +
  • +

    See what they built

    Mockups, previews, PDFs and images open right next to the conversation, in tabs you can flip between.

    +
    + +
      +
    • No browser shuffle Nothing lands in a stray browser window; it stays with the task that made it.
    • +
    • Pick a favorite Ask for three takes on a design and choose with all of them in front of you.
    • +
    • Still there later The Page tab keeps the last page one click away.
  • @@ -1196,9 +1371,9 @@ footer { @@ -1223,36 +1398,36 @@ footer {
  • -

    Reviews

    Choose a review workflow for each project. Its reviewers check the task's work after each turn that changes files. The agent fixes the findings it agrees with on its own and says why it skips the rest; you can overrule any of them with a click.

    +

    Reviews

    Every change gets a second opinion. Reviewers check each turn's work; the agent fixes what holds up, explains what it skips, and you can overrule it with a click.

      -
    • A second opinion. Your chosen reviewers check the task's work after each turn that changes files.
    • -
    • Triaged for you. The agent fixes what holds up and explains what it leaves.
    • -
    • Your call. Overrule any finding it skipped with one click and it gets fixed.
    • +
    • Mix your models Have Codex check Claude Code's work, or the other way around.
    • +
    • Argued, not obeyed The agent pushes back on findings it thinks are wrong, and shows its reasoning.
    • +
    • You break ties Side with the reviewer and the fix is underway.
  • -

    One-click merge

    The agent merges the default branch in and resolves conflicts, then byre squashes, pushes and closes the task.

    +

    One-click merge

    Click Merge and you're done: the agent sorts out any conflicts, and the whole task lands as one clean commit.

      -
    • Conflicts handled. The agent merges the default branch in and works through any conflicts.
    • -
    • One clean commit. The whole task lands on the default branch as a single squashed commit.
    • -
    • Then it's done. byre pushes and closes the task, so your list stays short.
    • +
    • History you can read Five turns of back-and-forth become a single change with a real title.
    • +
    • Land it and keep going Merge the work so far and carry on in the same task.
    • +
    • A short list Merged tasks close themselves, so only live work stays in view.
  • -

    Teams and workflows

    Agents spawn subtasks or share a worktree as a team. Workflows chain stages with fan-out and fan-in.

    +

    Teams and workflows

    Big jobs get split up. An agent hands pieces to helpers, or a team builds one change together. Save the pipeline as a workflow and run it again any time.

      -
    • Subtasks. An agent hands off pieces of work to new agents on their own branches.
    • -
    • Teams. Several agents share one worktree and build the same change together.
    • -
    • Workflows. Save a pipeline once: stages fan out, fan back in, and run again.
    • +
    • The right agent for each part Give every stage its own vendor and model.
    • +
    • Drawn, not written Lay out stages in the app's workflow editor; there's no config file to write.
    • +
    • Back together Parallel stages meet at a final stage that sees all of their work.
  • -

    Hands on your Macs

    Agents can see and drive the Mac byre runs on, and the Macs you have the app open on, when a task needs it. They click through what they just built and check it works before telling you it's done.

    +

    Hands on your Macs

    Agents don't just say it works, they check. They see the screen and click through what they built, on any Mac running byre, before calling it done.

      -
    • Sees the screen. Agents read screenshots and every window's controls.
    • -
    • Drives the Mac. They click, type and browse to try what they just built.
    • -
    • Your Macs too. Any Mac with byre's app open can lend the agents a hand.
    • +
    • The real thing They type into, click and scroll the actual app, not a mock of it.
    • +
    • On the web too They drive a browser to test pages end to end.
    • +
    • Even while it sleeps byre wakes the server's display when an agent needs to look.
    • +
    +
    +
  • + +
  • +

    Diagrams, not walls of text

    Agents explain a design with a real diagram, drawn right in the conversation. Zoom in, and click a box to trace what it touches.

    +
    + +
      +
    • Big picture first Get the shape of a change before you read a line of it.
    • +
    • Up close Open any diagram full size and pinch into the detail.
    • +
    • Guided tours Agents name highlights like "Query path" that light up one flow at a time.
    • +
    +
    +
  • + +
  • +

    Work that starts itself

    Schedule the chores: a dependency bump every Monday, a test sweep every night. And the newest work on your default branch gets audited in the background, without a word from byre unless it finds something.

    +
    + +
      +
    • On the clock Hourly, daily, on the weekdays you pick, or monthly, with one agent or a whole workflow.
    • +
    • Bring your own auditor Any workflow can be the audit: a security pass, a docs check, whatever you care about.
    • +
    • Only the findings An audit with nothing to report puts itself away.