Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
1f92fda
Stabilize TipTap editor test teardown (#2010)
ymichael Aug 20, 2026
ce4e64d
Fix Claude resumed-input turn correlation (#2013)
ymichael Aug 20, 2026
2260f52
Fix sent-message editing across Codex and older browsers (#2012)
ymichael Aug 20, 2026
654d749
Fix plugin diff highlighting in development (#2007)
ymichael Aug 20, 2026
8a50f6a
Mobile: dark-safe scrims, keyboard gap, project folder icon, round st…
SawyerHood Aug 20, 2026
47a2ffd
Fix local editor helper discovery across machines (#2008)
ymichael Aug 20, 2026
ea61d17
Add host-owned SourceCode and Diff rendering for the app and plugins …
ymichael Aug 20, 2026
e93ce27
Fix intermittent new-thread submit blockers (#2017)
ymichael Aug 20, 2026
05cc16d
Show edit actions promptly after thread submit (#2016)
ymichael Aug 20, 2026
6c62596
Report pi and ACP turn acceptance on consumption (#2021)
ymichael Aug 20, 2026
08d3f73
Fix Cursor ACP dynamic tools (#2022)
ymichael Aug 20, 2026
78cd3c4
Fix Pi context usage updates during tool loops (#2024)
ymichael Aug 20, 2026
2ff5828
Fix long-thread database and event-loop stalls (#2025)
ymichael Aug 20, 2026
0b2723a
Let stale daemons reach protocol self-update (#2028)
ymichael Aug 20, 2026
c7c6642
Reduce conversation outline refetches during streaming (#2027)
ymichael Aug 20, 2026
b9b95db
fix(web): the demo frames get a real border, not a ring
lnittman Aug 20, 2026
6bc522e
fix(web): restore the task cards the board demo was hiding
lnittman Aug 20, 2026
4013588
fix(web): draw the demo rails the way the app draws them
lnittman Aug 20, 2026
3f5825f
feat(web): rebuild the build and spawn demos as single bb windows
lnittman Aug 20, 2026
6232351
chore(web): drop the CSS the rebuilt demos left behind
lnittman Aug 20, 2026
5f4172b
Remove the working status from the mobile thread header (#2032)
SawyerHood Aug 20, 2026
c4a3dc5
Match mobile unread divider to web styling (#2033)
SawyerHood Aug 20, 2026
f4ab03f
Port the web sound-wave recording bar to the mobile composer (#2034)
SawyerHood Aug 20, 2026
6da2a7a
Replace the mobile left drawer with a workspace menu (#2036)
SawyerHood Aug 20, 2026
bffb35c
fix(web): close the rendering-law and mobile defects the review found
lnittman Aug 20, 2026
b03ce9e
feat(web): morph the board between List and Board, and stop animating…
lnittman Aug 20, 2026
1a8958b
Connect the mobile app to EAS and add the nightly TestFlight job (#2038)
SawyerHood Aug 20, 2026
cb8d696
feat(web): open the panel the build demo says it built
lnittman Aug 20, 2026
12c6762
refactor(web): name the tile radius and the two radius families
lnittman Aug 20, 2026
993ab24
fix(web): stack the build demo's three panes on narrow screens
lnittman Aug 20, 2026
d2200de
Match the mobile app icon to the desktop app icon (#2039)
SawyerHood Aug 20, 2026
7af6934
Make plugin file openers reachable and give them a real height (#2026)
andrewkchan Aug 20, 2026
090324b
Enable provider retry by default (#2020)
ymichael Aug 20, 2026
23a4eae
Add production-style worktree start command (#2045)
ymichael Aug 20, 2026
7d99c4e
Refuse queued messages for threads whose environment is gone (#2043)
SawyerHood Aug 20, 2026
8e37200
Allow archiving a thread after its environment row is pruned (#2042)
SawyerHood Aug 20, 2026
4bf34b5
Make machine settings text-first and responsive (#2050)
ymichael Aug 20, 2026
3225431
Register start-bb signal handlers before spawning (#2055)
ymichael Aug 20, 2026
078adb1
Ignore nested node_modules and .git in the workspace root watch (#2041)
SawyerHood Aug 20, 2026
099f134
Reveal the selection head in the prompt input, not the anchor (#2053)
SawyerHood Aug 20, 2026
de8a740
Align the mobile thread list with the web sidebar and add section reo…
SawyerHood Aug 20, 2026
0056109
Make environment host labels responsive (#2056)
ymichael Aug 20, 2026
fe128ca
Match the PR check icon to the GitHub favicon geometry (#2057)
SawyerHood Aug 20, 2026
55f86b6
perf(app): activate plugin styles only while mounted (#2002)
ymichael Aug 20, 2026
418619c
Return tool-call images instead of dropping them (#1963)
sujeito-operator Aug 20, 2026
e2749bc
Support thread-storage files in Docs opener (#2061)
ymichael Aug 20, 2026
6be4505
Fix mobile compose project picker E2E race (#2060)
ymichael Aug 20, 2026
4e5a917
Add experiment-gated timeline row windowing (#2011)
ymichael Aug 20, 2026
5b85511
Avoid plugin update timer overflow with no eligible plugins (#2070)
ymichael Aug 20, 2026
d749741
Move provider state into provider bridge contract (#1879)
ymichael Aug 20, 2026
bfb8f87
Keep split-divider drag state off document.body (#2073)
ymichael Aug 20, 2026
5154a94
Render PDF file previews instead of "Preview not available" (#1979)
jsilets Aug 20, 2026
af868d9
Fix short user message bubble resizing (#2075)
ymichael Aug 20, 2026
cfd35d6
Remove unreachable ask-agent git failure flow (#2080)
ymichael Aug 20, 2026
3934ce0
Add a privacy policy page for App Store review (#2077)
SawyerHood Aug 20, 2026
9d758c2
Set app bundle budgets to 10% headroom (#2081)
ymichael Aug 20, 2026
fe0a9a8
Skip unrelated provider probes for installation status (#2078)
ymichael Aug 20, 2026
9768d55
Add plugin navigation primitives (#2005)
ymichael Aug 20, 2026
a77a391
Isolate provider installation status failures (#2076)
ymichael Aug 20, 2026
914e875
Stabilize changed-declaration bridge lifecycle test (#2084)
ymichael Aug 20, 2026
95f7f7f
Preserve persisted file opener source routing (#2083)
ymichael Aug 20, 2026
7f3d2ac
Load branch picker options before remote refresh (#2082)
ymichael Aug 20, 2026
9c096dd
Preserve Docs opener host routing (#2088)
ymichael Aug 20, 2026
09d72cd
Report the real app surface for desktop and API telemetry (#2087)
SawyerHood Aug 20, 2026
82422c2
Fix queued external file dispatch (#2089)
ymichael Aug 20, 2026
deb7230
Fix and simplify side panel splits (#2059)
ymichael Aug 20, 2026
3f4fdcc
Avoid eager work in host file previews (#2092)
ymichael Aug 20, 2026
ef14c60
Do not link removed pull request files (#2099)
ymichael Aug 20, 2026
82b9a00
Resolve Docs project-backed opener sources (#2101)
ymichael Aug 20, 2026
e171ceb
Restart Claude sessions after authentication failures (#2098)
ymichael Aug 20, 2026
63162f8
Preserve native semantics in plugin links (#2094)
ymichael Aug 21, 2026
8be3712
Resolve thread storage locations without listing (#2100)
ymichael Aug 21, 2026
10355d9
Delete the stale agent-provider-plugin-surface plan (#2111)
SawyerHood Aug 21, 2026
0251399
Add a mock bb server for App Store review, deployed from CI (#2110)
SawyerHood Aug 21, 2026
65f9e0a
Add streamer mode to hide custom models from model lists (#2107)
SawyerHood Aug 21, 2026
c9aef75
Fix Tasks stale-label persistence test race (#2112)
ymichael Aug 21, 2026
d20638b
Skip replayed turn/started events at daemon ingestion (#2126)
SawyerHood Aug 21, 2026
2ff8598
Route plugin service uncaught exceptions to the service supervisor (#…
SawyerHood Aug 21, 2026
703213a
Move the mobile attachment remove button onto the thumbnail and open …
SawyerHood Aug 21, 2026
ed97e55
Move a local plugin to a new directory without losing its settings (#…
SawyerHood Aug 21, 2026
ea2d56b
Keep the mobile composer typeahead below the native header (#2137)
SawyerHood Aug 21, 2026
d93d43d
Replace stacked mobile prompt cards with a chip row (#2138)
SawyerHood Aug 21, 2026
9d0b8a9
Delete the cascade and t3sidebar example plugins (#2143)
SawyerHood Aug 21, 2026
2c0b747
Omit a null hostId from thread tabs responses so older mobile builds …
SawyerHood Aug 21, 2026
9dff424
Remove dead code and simplify module surfaces (#2140)
SawyerHood Aug 21, 2026
f6fb434
Move the collapsed mobile stop button flush with the pill corner (#2146)
SawyerHood Aug 21, 2026
c942421
Use a no-break narrow space as the mobile inline code pad (#2172)
SawyerHood Aug 21, 2026
a36e691
Replace the mobile live dot with shimmering glyphs and fold the conte…
SawyerHood Aug 21, 2026
b1bd629
Add provider plugin v3 contract: vocabulary, presentation, extensions…
SawyerHood Aug 21, 2026
94988c3
[stacked on #2124] WS1a: generic assembler + published testing kit (#…
SawyerHood Aug 21, 2026
dacfaf4
[stacked on #2136 ← #2124] Add bridge record mode, real provider reco…
SawyerHood Aug 21, 2026
7a8e0da
[stacked on #2153 ← #2136 ← #2124] WS2a: bb.providers.register + sing…
SawyerHood Aug 21, 2026
aa5001f
[stacked on #2148 ← #2153 ← #2136 ← #2124] Pin provider baselines: co…
SawyerHood Aug 21, 2026
fcf9e61
[stacked on #2121 ← #2148 ← #2153 ← #2136 ← #2124] WS1b-codex: Codex …
SawyerHood Aug 21, 2026
7bc46ad
[stacked on #2164] WS1b-claude: Claude Code bridge to grammar v3 with…
SawyerHood Aug 21, 2026
810cf2e
[stacked on #2178] WS1b-acp: ACP bridge to grammar v3 with presentati…
SawyerHood Aug 21, 2026
98a741e
Classify Cloudflare challenges on Codex requests as transient (#2159)
SawyerHood Aug 21, 2026
eec134d
Enter Plan mode when a later Claude turn carries /plan (#2157)
SawyerHood Aug 21, 2026
0880d11
Detect bare repositories as worktree sources (#2158)
SawyerHood Aug 21, 2026
2845b3c
Make bb-app verify its server child's identity on /health (#2162)
SawyerHood Aug 21, 2026
e03b4a7
Keep a tool call's late completion in its spawning turn's details (#2…
SawyerHood Aug 21, 2026
e8f7968
Keep adjacent assistant answers visible in completed turns (#2133)
SawyerHood Aug 21, 2026
26d9ab5
Send the composer's execution selection with steers (#2149)
SawyerHood Aug 21, 2026
b0ac28c
Add bb tasks detach and list live task threads first (#2167)
SawyerHood Aug 21, 2026
e0175eb
Reject HEIC/HEIF attachment uploads with a reason (#2170)
SawyerHood Aug 21, 2026
ad7edf8
Recover from an unreachable saved remote server target (#2161)
SawyerHood Aug 21, 2026
78bd562
Show why the Server menu lists no Connect servers (#2168)
SawyerHood Aug 21, 2026
abde653
Load the thread storage file tree on demand (#2139)
SawyerHood Aug 21, 2026
1aafe4d
Close display math whose $$ delimiters are glued to the TeX (#2151)
SawyerHood Aug 21, 2026
d9f3f7f
Virtualize the CSV preview rows and remote path browser entries (#2163)
SawyerHood Aug 21, 2026
34a3ebb
Reserve the inline-vis preview height while loading (#2165)
SawyerHood Aug 21, 2026
d4b91c9
Keep app chrome out of text selection (#2171)
SawyerHood Aug 21, 2026
9dad3ae
Keep Shiki's RegExp feature probes out of the bundler's reach (#2173)
SawyerHood Aug 21, 2026
cf00cfe
Highlight shell and other chat fences with sugar-high v2 (#2175)
SawyerHood Aug 21, 2026
fcada5a
Add the provider-literal ratchet guardrail (G1) (#2120)
SawyerHood Aug 21, 2026
2ad4bfa
Stop advertising fork for acp-cursor and acp-grok (#2150)
SawyerHood Aug 21, 2026
15f21ad
Keep Codex stream-disconnect classification on the terminal error (#2…
SawyerHood Aug 21, 2026
b2e8035
Remove the URL QR toggle from the connect settings card (#2201)
SawyerHood Aug 21, 2026
75d6fc4
Pin the nightly iOS marketing version so TestFlight skips re-review (…
SawyerHood Aug 21, 2026
85eec4d
Add each submitted TestFlight build to the external group from CI (#2…
SawyerHood Aug 21, 2026
9e01148
Fix mobile smoke deep-link startup race (#2214)
ymichael Aug 21, 2026
3ca4c6c
Redact all GitHub token formats from provider recordings (#2213)
ymichael Aug 21, 2026
27d1017
Fix macOS bare worktree test path assertion (#2215)
ymichael Aug 21, 2026
d65cea9
Keep the model picker scrollable in short viewports (#1596)
Juns-g Aug 21, 2026
121dad4
(fix) Add copy link to desktop context menu (#1532)
MateoCerquetella Aug 21, 2026
b3e9c24
Add full-file context to experimental plugin diffs (#2106)
ymichael Aug 21, 2026
2e235c1
Open a sidebar HTML preview full-page in the external browser (#1638)
brsbl Aug 21, 2026
4f9a0a1
Prevent competing turns and false Codex session rebuilds (#2242)
ymichael Aug 21, 2026
2d27aea
Simplify the agent-generated trailer in AGENTS.md
SawyerHood Aug 21, 2026
b863016
Run the nightly desktop publish job on the nightly paths (#2247)
andrewkchan Aug 21, 2026
f4ce9be
Use login-shell PATH for daemon user tools (#2252)
ymichael Aug 21, 2026
1e50add
Stop the dev launcher's ~/.local/bin from shadowing the selected Node…
andrewkchan Aug 21, 2026
e27b930
Replace composer zen mode with collapse control (#2254)
ymichael Aug 21, 2026
9356793
Show full build details in the desktop About dialog (#2255)
andrewkchan Aug 21, 2026
38b1a41
Drop the desktop About dialog tests (#2256)
andrewkchan Aug 21, 2026
7d1f805
Cancel an inline sent-message edit with Escape (#1940)
davidondrej Aug 21, 2026
06d0703
Add a keyboard-first quick palette (#2114)
andrewkchan Aug 21, 2026
54e3e63
Show the drawer glyph on every right-panel trigger (#2259)
ymichael Aug 21, 2026
ad13915
Fix desktop spelling suggestions (#2244)
Roystbeef Aug 21, 2026
03d3c0e
Fix windowed timeline outline navigation (#2260)
ymichael Aug 21, 2026
26fbf43
Read ACP command exit codes from rawOutput instead of the status (#2131)
SawyerHood Aug 21, 2026
52083aa
Resolve a named default base branch against origin when spawning (#2152)
SawyerHood Aug 21, 2026
22d3622
Report a failed plugin reload instead of exit 0 (#2155)
SawyerHood Aug 21, 2026
b64ab2b
Add bb thread --plan for CLI/SDK parity with the composer's plan acti…
SawyerHood Aug 21, 2026
d41d1ab
Make bb thread log truncation visible and add --all paging (#2174)
SawyerHood Aug 21, 2026
6980768
Add Plugin API Tester (#2265)
ymichael Aug 21, 2026
bf21531
Patch sidebar rows from status-changed pushes instead of refetching (…
SawyerHood Aug 21, 2026
b3dd891
Record Pi extension messages as provider input (#2154)
SawyerHood Aug 21, 2026
9ed9a97
Clone source history into thread forks and honor sourceSeqEnd (#2142)
SawyerHood Aug 21, 2026
0e12ccc
Wait for machine project counts in settings test (#2266)
ymichael Aug 21, 2026
8a2150f
Fix MachineSettingsView response mock flake (#2267)
ymichael Aug 21, 2026
3f86b7c
Expose host execution controls to plugin apps (#1469)
brsbl Aug 21, 2026
411c777
Add dark mode to the marketing site (#2246)
brsbl Aug 21, 2026
2b69d30
chore(web): add react-grab for annotating the landing page in dev
lnittman Aug 22, 2026
f04c81d
fix(web): give the three act demos a real window height
lnittman Aug 22, 2026
4d16fdd
feat(web): bring the act demos up to the app's real density
lnittman Aug 22, 2026
24e89be
Migrate linting and formatting to Oxc (#2258)
smsunarto Aug 22, 2026
8201aa7
Let plugins add rows to the quick palette (#2270)
andrewkchan Aug 22, 2026
40dd797
Merge remote-tracking branch 'origin/main' into bb/landing-elevation
lnittman Aug 22, 2026
94371c6
feat(web): dark mode for the rewritten landing
lnittman Aug 22, 2026
dce06d4
feat(web): move the theme control to the footer as a segmented switch
lnittman Aug 22, 2026
3a70e60
feat(web): phone frame, Telegram chat, and two control fixes
lnittman Aug 22, 2026
0cce3b2
feat(web): phones in the bento, and a batch of grabbed fixes
lnittman Aug 22, 2026
69f8cee
fix(web): close the empty space in every thread demo, and rework the …
lnittman Aug 22, 2026
8838045
fix(web): stop the overscroll filler adding a screen of dead page
lnittman Aug 22, 2026
359bcb5
fix(web): even the subscribe button's inset in its capsule
lnittman Aug 22, 2026
c5faf13
feat(web): open each agent's own thread from the gang rail
lnittman Aug 22, 2026
af6556f
feat(web): make the closing mark a sticker easter egg
lnittman Aug 22, 2026
c900b50
fix(web): drop the stat roll, and stop the nav mark reloading on /
lnittman Aug 22, 2026
6fc8cbc
fix(web): make both phone demos pay off above the card's edge
lnittman Aug 22, 2026
6ad9700
fix(web): adopt the app's hover convention, and give the diff cards a…
lnittman Aug 22, 2026
aec46ed
fix(web): keep only the sticker that belongs to this page
lnittman Aug 22, 2026
a379e70
refactor(web): adopt the app's radius ladder instead of a parallel one
lnittman Aug 22, 2026
161d251
refactor(web): one list row, and delete the rules nothing could reach
lnittman Aug 22, 2026
3eb02c8
feat(web): each demo plays its story once, then rests
lnittman Aug 22, 2026
6575446
fix(web): the gang demo had working buttons inside content screen rea…
lnittman Aug 22, 2026
16d3b89
fix(web): stop animating things the app does not animate
lnittman Aug 22, 2026
e454ea5
chore(web): sync the lockfile after dropping torph
lnittman Aug 22, 2026
86e6789
fix(web): the hero drew a diff with no line numbers
lnittman Aug 22, 2026
cc17cee
fix(web): let the riso easter egg survive dark mode
lnittman Aug 22, 2026
e7329e5
fix(web): you text your bb, not Hermes
lnittman Aug 22, 2026
9127603
feat(web): give the bento a ground rhythm, drop its entrance
lnittman Aug 22, 2026
404e987
fix(web): show all eighteen merged PRs instead of scrolling four
lnittman Aug 22, 2026
9cbd315
fix(web): the app does not assemble itself, so the hero stops pretend…
lnittman Aug 22, 2026
917e21a
feat(web): show which pull requests the agents wrote, and give the gr…
lnittman Aug 22, 2026
01d6e58
feat(web): give the signup a room, put it in two places, and kill the…
lnittman Aug 22, 2026
6830379
fix(web): restore the hover convention, and give the closer a field o…
lnittman Aug 22, 2026
0c619ab
fix(web): give the footer a ground that is actually a step, and a rul…
lnittman Aug 22, 2026
ca0a51a
feat(web): make the closer field a crowd, put every artifact on one rail
lnittman Aug 22, 2026
f02d714
feat(web): let the closer field wear the providers' own colours
lnittman Aug 22, 2026
e8e3f34
fix(web): make the closer field's colour actually carry, and dissolve…
lnittman Aug 22, 2026
8fbefc0
codex(hero): demo parity pass
lnittman Aug 22, 2026
bad18ac
codex(panels): demo parity pass
lnittman Aug 22, 2026
5649b0b
codex(acts): demo parity pass
lnittman Aug 22, 2026
536c0e4
merge(web): hero demo parity pass from codex
lnittman Aug 22, 2026
2c298c2
fix(web): restore the CSSProperties type import the hero merge dropped
lnittman Aug 22, 2026
6a2718b
fix(web): drop the closer mark, unstyle the OS from the selects, matc…
lnittman Aug 22, 2026
bdc37dc
feat(web): scroll the PR feed again, and drop the second signup
lnittman Aug 22, 2026
595c84c
feat(web): show the messages, not the phone around them
lnittman Aug 22, 2026
f8dbbda
merge(web): panel demo parity pass from codex
lnittman Aug 22, 2026
2266230
feat(web): build the closer as three plates in a slate shell
lnittman Aug 22, 2026
4b29fa0
fix(web): install row under the closer copy, and frame the chat cards
lnittman Aug 22, 2026
eed2a87
fix(web): stop the typing bubble reflowing, the rail rule moving, and…
lnittman Aug 22, 2026
37b11c6
fix(web): let the footer share the closer's ground
lnittman Aug 22, 2026
cc7a395
fix(web): let the closer plates follow the theme
lnittman Aug 22, 2026
beab961
merge(web): act demo parity pass from codex
lnittman Aug 22, 2026
467877a
fix(web): every sidebar row is 32px, because the app's is
lnittman Aug 22, 2026
a2282b2
refactor(web): four breakpoints instead of ten, and fix what the over…
lnittman Aug 23, 2026
c4e152c
chore(web): shelve the closer plates
lnittman Aug 23, 2026
491a8ac
feat(web): the install becomes one capsule, in the hero and the closer
lnittman Aug 23, 2026
b5a7af4
feat(web): the install becomes a card, not a capsule
lnittman Aug 23, 2026
9e70564
fix(web): the typing dots stop coming back
lnittman Aug 23, 2026
602f038
fix(web): the install card gets its second layer
lnittman Aug 23, 2026
1afd06d
fix(web): headline on one line, copy glyph to the edge, closer in a room
lnittman Aug 23, 2026
9278f82
fix(web): the closer room holds the offer, not the signup
lnittman Aug 23, 2026
ca9ead7
fix(web): close eleven cited app-parity and honesty gaps in the landi…
lnittman Aug 23, 2026
7718eff
refactor(web): lift both install leads out of the card, under their t…
lnittman Aug 23, 2026
ba7dd72
fix(web): open up the closer and gate the signup on a valid address
lnittman Aug 23, 2026
45a156d
fix(web): match the subscribe button's height to the field beside it
lnittman Aug 23, 2026
e3115fa
fix(web): separate the hero rail's rows, and set $ as a prompt not a …
lnittman Aug 23, 2026
d199345
fix(web): make the demos behave like the app, not merely look like it
lnittman Aug 23, 2026
424db86
fix(web): settle the phone cards at rest, and lift them like the row …
lnittman Aug 23, 2026
4226cb0
fix(web): dismissable overlays, unclamped ask options, and the closer…
lnittman Aug 23, 2026
25a3af8
fix(web): stop claiming a copy that failed, and three hero metrics
lnittman Aug 23, 2026
00f2aa7
fix(web): stop the review expansion stealing height, and border the b…
lnittman Aug 23, 2026
26b8eaa
fix(web): read threads stay read, and no OS chrome inside the app
lnittman Aug 23, 2026
0101fc1
fix(web): re-inset the plugin panel's caption
lnittman Aug 23, 2026
bc19095
fix(web): the composer stops reaching for the operating system
lnittman Aug 23, 2026
c5c8664
refactor(web): one picker for every demo, no native selects left
lnittman Aug 23, 2026
205b8be
fix(web): make `hidden` hide, and give every demo a working rail toggle
lnittman Aug 23, 2026
3f4390e
fix(web): the hero mock stops inventing a carousel and stops shrinking
lnittman Aug 23, 2026
a006b6a
fix(web): close the prompt-bar's measured drift against PromptBoxInte…
lnittman Aug 23, 2026
9657304
fix(web): drop the repeated provider rail, and match the signup to th…
lnittman Aug 23, 2026
7ce99d1
fix(web): row state stops depending on which demo and which element
lnittman Aug 23, 2026
ce1f74d
fix(web): one reading measure across blog, changelog and the landing
lnittman Aug 23, 2026
bae852c
fix(web): content pages take the landing's rail and its signup card
lnittman Aug 23, 2026
9514b25
fix(web): drop the agent attribution, and set the hero type to the re…
lnittman Aug 23, 2026
960a92c
fix(web): the subscribe prompt is a button, and blog's head stays left
lnittman Aug 23, 2026
95abb43
feat(web): dotted stage on the closer, and media for three more releases
lnittman Aug 23, 2026
e0b01bf
feat(web): media for 0.38.0, the Extensions page
lnittman Aug 23, 2026
c1b8535
fix(web): drop the apple glyph from the macOS download button
lnittman Aug 23, 2026
620d37d
feat(web): the hero economics line becomes four tiles
lnittman Aug 23, 2026
61938b0
feat(web): demo primitives land, and Subagents is the first demo on them
lnittman Aug 23, 2026
eb4f64d
fix(web): the seam ledger — five measured chrome fixes
lnittman Aug 23, 2026
7384806
feat(web): the hero goes still, and a stuck attribute stops killing t…
lnittman Aug 23, 2026
3af445d
feat(web): Build and Gang join the demo primitives
lnittman Aug 23, 2026
8e41c95
feat(web): Spawn joins the primitives, with anchors that survive a co…
lnittman Aug 23, 2026
1c3d9d2
feat(web): the hero mock joins the primitives -- all five demos migrated
lnittman Aug 23, 2026
4749060
feat(web): the legacy demo vocabulary is gone, and the guard now bans it
lnittman Aug 24, 2026
48179eb
fix(web): transcripts read top-down in every demo, as the app's do
lnittman Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,4 @@ body:
required: true
- label: I searched open and closed issues for the same problem.
required: true
- label: If an agent wrote this, the body ends with `> AGENT GENERATED: by <model>` and links the thread or report.
- label: If an agent wrote this, the body ends with `> AGENT GENERATED` and links the thread or report.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ body:
options:
- label: I searched open and closed issues for the same request.
required: true
- label: If an agent wrote this, the body ends with `> AGENT GENERATED: by <model>`.
- label: If an agent wrote this, the body ends with `> AGENT GENERATED`.
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@
Fixes #

<!-- Agents: end with the line below. -->
<!-- > AGENT GENERATED: by <model> -->
<!-- > AGENT GENERATED -->
8 changes: 8 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,14 @@ jobs:
- name: Check app bundle budgets
run: node apps/app/scripts/check-bundle-budget.mjs

# Provider-literal ratchet (G1 of the provider-plugin migration):
# core must never gain a new provider-id carve-out; the per-file
# baseline may only shrink. See docs/provider-plugin-api.md.
- name: Check provider-literal ratchet
run: |
git fetch --depth=1 origin "${{ github.base_ref || github.event.repository.default_branch }}" || true
node scripts/check-provider-literal-ratchet.mjs --base "origin/${{ github.base_ref || github.event.repository.default_branch }}"

# Exceeding the Actions cache quota is silent: GitHub evicts entries
# without failing or warning anything, so the only symptom is caches
# quietly ceasing to hit. Warn while there is still headroom.
Expand Down
84 changes: 84 additions & 0 deletions .github/workflows/deploy-demo-server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Deploy Demo Server

# The bb demo server is the mock bb server an App Store reviewer connects to
# (apps/demo-server). It has no database, no secrets, and no route of its
# own, so this is the short form of deploy-connect.yml: install, typecheck
# and test, deploy. It serves from workers.dev; see the wrangler config for
# why it is not on demo.getbb.app.
#
# Paths: the worker bundles @bb/server-contract from source, and the
# contract is what its tests check the fixtures against, so a contract change
# redeploys the demo too. That is the point: a demo that has drifted from the
# contract is a demo that crashes in front of a reviewer.

on:
push:
branches:
- main
paths:
- "apps/demo-server/**"
- "packages/server-contract/**"
- ".github/workflows/deploy-demo-server.yml"
workflow_dispatch:

env:
NODE_VERSION: "22.x"
PNPM_VERSION: "9.15.0"

permissions:
contents: read

# One deploy at a time, and a queued one waits rather than being dropped, so
# the worker never ends up on a build older than main.
concurrency:
group: demo-server-deploy-${{ github.ref }}
cancel-in-progress: false

jobs:
deploy:
name: Deploy demo server to Cloudflare Workers
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 15

steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up pnpm
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with:
version: ${{ env.PNPM_VERSION }}
run_install: false

- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile --prefer-offline

# The tests parse every fixture with the contract's own schemas. Run
# them here too, not only in ci.yml: this job also fires on a contract
# change, and that is exactly when a fixture can go stale.
- name: Typecheck and test
run: pnpm exec turbo run typecheck test --filter=@bb/demo-server

# No build step: wrangler's esbuild bundles the worker and its workspace
# dependency straight from source. The account is pinned in
# wrangler.jsonc, so the token never has to pick one.
- name: Deploy demo server
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: pnpm --filter @bb/demo-server exec wrangler deploy | tee deploy.log

# The workers.dev URL is what goes in the App Store review notes. Surface
# it on the run so nobody has to open the Cloudflare dashboard for it.
- name: Report the URL
run: |
{
echo "## Demo server"
echo
grep -Eo 'https://[^ ]+\.workers\.dev' deploy.log | sort -u | sed 's/^/- /' || echo "- URL not found in the wrangler output; check the deploy step log."
} >> "$GITHUB_STEP_SUMMARY"
Loading