Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
449 commits
Select commit Hold shift + click to select a range
339676e
fix: Fixed 404 broken link to extensions page in index.md (#3623)
amunrarara Jul 29, 2025
71d5ae4
Create a message ID for tool response messages (#3591)
jamadeo Jul 29, 2025
c84dc39
feat(githubcopilot): add ability to fetch supported models (#2717)
gugahoi Jul 29, 2025
bc25308
fix: escape control characters in LLM tool call arguments JSON (#2893)
bjulian5 Jul 29, 2025
70b2312
fix: pricing estimation for OpenRouter in goose-cli (#3675)
praneeth-ovckd Jul 29, 2025
097351a
Fix typo in quickstart document (#3447)
hasithsen Jul 29, 2025
af2ca33
only run google analytics in prod (#3395)
blackgirlbytes Jul 29, 2025
4ac5fe4
chore: remove ffi libraries and related code (#3699)
salman1993 Jul 29, 2025
9d996c3
feat: update Groq models for better tool calling support (#3676)
ki3ani Jul 29, 2025
656b5b8
Remove unused dependencies (#3626)
DOsinga Jul 29, 2025
23ec017
docs: GitMCP Tutorial (#3708)
EbonyLouis Jul 29, 2025
eb00480
Fix tool vector tests (#3709)
DOsinga Jul 29, 2025
b1187a7
chore: Speed up CI (#3711)
jamadeo Jul 29, 2025
0fb58c4
docs: Add GitMCP Tutorial to Extensions Library (#3716)
EbonyLouis Jul 29, 2025
1544e1f
chore: small refactor on agent.rs (#3703)
lifeizhou-ap Jul 29, 2025
4222f01
Blog:How OpenRouter Unlocked Our Workshop Strategy (#3726)
blackgirlbytes Jul 30, 2025
45adf4e
skip app-related CI jobs for doc/blog PRs (#3704)
glenn-sq Jul 30, 2025
faf252a
Iand/make goosehints blog post visible (#3729)
iandouglas Jul 30, 2025
601c678
feat: openrouter out of the box experience for goose installations (#…
michaelneale Jul 30, 2025
21604df
Ok, well, that got out of hand (#3718)
DOsinga Jul 30, 2025
e5ac641
Must have missed this one (#3733)
DOsinga Jul 30, 2025
f47836b
Fix html content detection regex to not include markdown autolinks (#…
zanesq Jul 30, 2025
be6c599
Fix slow typing in chat input with long running sessions (#3722)
zanesq Jul 30, 2025
b4aa2cd
Update OSX codesigning and notarization (#3658)
finn-block Jul 30, 2025
1c3f90c
docs: Add Neon MCP Server tutorial (#3639)
andrelandgraf Jul 30, 2025
ed3217c
Remove unused Memory Mode / Computer-Controller Mode code (#3743)
zanesq Jul 30, 2025
e20a885
chord: refactor tool route (#3732)
lifeizhou-ap Jul 30, 2025
4549d61
fix: View extensions link (#3751)
angiejones Jul 31, 2025
86871ad
feat: allow users view and edit their non-secret config's (#3005)
Developerayo Jul 31, 2025
001bceb
feat: upgrade rmcp (#3738)
aharvard Jul 31, 2025
7cfdf9a
chore: fix typo in desktop readme for goosed (#3752)
codymullins Jul 31, 2025
5b6dd13
chore: Remove the wrong tailwind package (#3754)
jamadeo Jul 31, 2025
71c8d9e
Add support for mouse back nav button to Settings screen (#3195)
pedronveloso Jul 31, 2025
d9313ac
feat: Allow configuring hints filename(s) (#3269)
necaris Jul 31, 2025
d1e38fb
Make the client more secure (#3742)
DOsinga Jul 31, 2025
5bc6601
Persist first message to local history in case of failure or cancella…
zanesq Jul 31, 2025
dbde38e
center session summary modal description text (#3737)
zanesq Jul 31, 2025
f1907ab
fix not being able to click on searchbar buttons in chat (#3723)
zanesq Jul 31, 2025
b5e73c4
fix: initial prompt not filled in after accepting new recipe (#3637)
zanesq Jul 31, 2025
6f36c1f
Autocompact + One Shot Summarization algorithm (#3559)
katzdave Jul 31, 2025
9daa464
Env parsing for primitive types (#3706)
katzdave Jul 31, 2025
c9ae9ba
Ensure adding/removing extensions refreshes extensions list (#3695)
zanesq Jul 31, 2025
113dce2
Improve power save blocker mechanism (#3698)
zanesq Jul 31, 2025
75a382b
docs: consolidate search session content, doc import recipe (#3759)
dianed-square Jul 31, 2025
3f6a055
Speed up app initialization and improve refresh crashing (#3717)
zanesq Jul 31, 2025
14ee888
Stable goose info -v (#3760)
DOsinga Jul 31, 2025
26cb850
Increase req body limit (#2965)
Developerayo Jul 31, 2025
55fc42d
fix: cli tool logging (#3749)
jamadeo Aug 1, 2025
bbf1f1e
fix: don't return full shell output when very large (#3750)
michaelneale Aug 1, 2025
b4ab774
Fix claude model names (#3765)
jamadeo Aug 1, 2025
9006987
integrate MCP UI (#2948)
aharvard Aug 1, 2025
b1f82b9
Update goose hints (#3758)
DOsinga Aug 1, 2025
2100a86
fix: bundle workflows (#3780)
jamadeo Aug 1, 2025
750fbb4
No tool role means we should not collapse messages (#3778)
DOsinga Aug 1, 2025
380f23a
fix(ui): extension command text overflow (#3785)
alexrrouse Aug 1, 2025
a334602
Ensure more client (#3787)
DOsinga Aug 1, 2025
ba9981d
Fix open recipe chat via deeplink (#3773)
lifeizhou-ap Aug 1, 2025
1a8b3b1
Handle missing keys with a default (#3753)
DOsinga Aug 1, 2025
3b6a92b
Mnovich/otlp v2 (#3772)
Kvadratni Aug 1, 2025
7b67007
Use PR number for concurrency group (#3790)
jamadeo Aug 1, 2025
6b3018b
Swap MCP client implementations to rmcp (#3634)
jamadeo Aug 1, 2025
7e7b19d
docs: update custom extension project setup (#3793)
dianed-square Aug 1, 2025
ba02ed9
chore: Upgrade node (#3756)
jamadeo Aug 2, 2025
9cd07b8
docs: fix markdown for cognee tutorial (#3801)
danieldides Aug 2, 2025
d93063b
Override session name generator for ollama provider (#3710)
angelahning Aug 2, 2025
43e85c4
developer: Optimize text_editor_view a bit (#3781)
cgwalters Aug 2, 2025
84704d1
feat: Add comprehensive Linux build support (#3673)
alfonsodg Aug 2, 2025
e433643
fix(ui): refresh provider related issues (#3385)
Developerayo Aug 2, 2025
f775cd9
chore(deps): bump on-headers and compression in /documentation (#3532)
dependabot[bot] Aug 3, 2025
c850ac2
Add settings field documentation to recipe guides (#3809)
blackgirlbytes Aug 3, 2025
9d5f58a
fix session resume in new window (#3800)
zanesq Aug 3, 2025
da8f64b
feat: enable docusaurus respectPrefersColorScheme (#3746)
exitcode0 Aug 3, 2025
412ceb8
chore(mcp): Add helpers to parse parameters (#2821)
cgwalters Aug 3, 2025
48a38dc
Chore: apply more clippy rules to prevent from code complexity (#3813)
lifeizhou-ap Aug 3, 2025
5d24432
tests: Add missing `#[serial]` to two tests (#3816)
cgwalters Aug 3, 2025
562dea3
docs: Dynamic linux install buttons (#3810)
blackgirlbytes Aug 3, 2025
092ece7
File completion in CLI (#3822)
DOsinga Aug 4, 2025
7a364de
Fix directory switcher not working in active chat sessions and file b…
zanesq Aug 4, 2025
f7de359
fix param order of debug_conversation_fixer (#3796)
jamadeo Aug 4, 2025
162011f
Build app bundles on release branches always (#3789)
jamadeo Aug 4, 2025
3f567ef
feat: more robust client initialization for the app (#3830)
alexhancock Aug 4, 2025
7b044d9
docs: Add YouTube link to Git MCP Tutorial (#3831)
EbonyLouis Aug 4, 2025
63f4374
Token counting in Auto-compact uses provider metadata (#3788)
katzdave Aug 4, 2025
2f31364
add CODEOWNERS file with /documentation owners (#3840)
dianed-square Aug 5, 2025
c6848ef
chore: upgrade morph to use new model with instruction (#3745)
michaelneale Aug 5, 2025
33f57da
Clear the current line on ctrl-c in line with other tools (#3764)
DOsinga Aug 5, 2025
918fadd
Generic retry and error parsing (#3558)
DOsinga Aug 5, 2025
66f8ef1
Update gemini error msg (#3847)
DOsinga Aug 5, 2025
97e508b
Fix leaky env variable causing flaky test (#3761)
katzdave Aug 5, 2025
bef7622
Suppress ansi with pipes (#3775)
DOsinga Aug 5, 2025
7174fc7
Detect client disconnects and cancel tool calls (#3782)
jamadeo Aug 5, 2025
c42c2ab
docs: Adding dev.to Tutorial & Update CLI Component (#3828)
EbonyLouis Aug 5, 2025
1bf3ea4
blog for mcp-jupyter server (#3059)
damienrj Aug 5, 2025
0220880
Pin @mcp-ui/client in package.json (#3860)
jamadeo Aug 5, 2025
861bd0a
Tell the user to hit compact (#3851)
DOsinga Aug 5, 2025
c4c6b98
Changed app settings configuration form to match settings panels (#3829)
zanesq Aug 5, 2025
747b959
docs: Add Youtube Link to dev.to tutorial (#3869)
EbonyLouis Aug 5, 2025
44526de
fix: replace glob/grep tool with shell (#3834)
baxen Aug 5, 2025
8f54fa8
fix: optimise reading large file content (#3767)
michaelneale Aug 5, 2025
c5fd3b7
fix: recipe parameter form max height and not scrolling (#3879)
zanesq Aug 6, 2025
46e883d
Cmd click open finder (#3807)
DOsinga Aug 6, 2025
7f87796
Fix OpenAI Provider with GitHub Models (#3875)
rzhade3 Aug 6, 2025
ee45025
Try to keep key order for Databricks (#3876)
jamadeo Aug 6, 2025
6b93260
Use RMCP for StreamableHTTP OAuth support (#3845)
jamadeo Aug 6, 2025
90ef149
Don't ignore lockfiles on linux/windows builds (#3859)
jamadeo Aug 6, 2025
c2f0855
feat: add OAuth provider abstraction for CLI configuration (#3157)
atarantino Aug 6, 2025
8679b6b
doc: Update supported container runtimes (#3874)
taqtiqa-mark Aug 6, 2025
580b451
Fix voice dictation provider selection bug (#3862)
JJSwigut Aug 6, 2025
7e40b93
Update filename in contributing docs (#3866)
amed-xyz Aug 6, 2025
a5371af
feat: Add session description editing functionality (#3819)
anthony Aug 6, 2025
4567eb2
additional metrics + Ui implementation (#3871)
Kvadratni Aug 6, 2025
1bd4298
Make the window title reflect what we are doing (#3883)
DOsinga Aug 6, 2025
bb26521
added notes about reducing context window by referencing external fil…
iandouglas Aug 6, 2025
b52112c
docs: recipe updates (#3844)
dianed-square Aug 6, 2025
a646c7a
Upgrade to MCP-UI ~5.6.2 and handle internalized auto iframe resizing…
aharvard Aug 6, 2025
67e6362
fixed recipe schedule jobs (#3880)
lifeizhou-ap Aug 7, 2025
17ea675
docs: cli command history search (#3905)
dianed-square Aug 7, 2025
5eb0100
chore: use a Conversation type (#3735)
jamadeo Aug 7, 2025
d3b76df
fix: extension list not refreshing after installing from deeplink (#3…
zanesq Aug 7, 2025
9b7593d
Fix dark mode rendering of config form and centered providers grid fo…
zanesq Aug 7, 2025
ad2dfff
feat(deps): upgrade rmcp to 0.4.1 (#3918)
alexhancock Aug 7, 2025
6e6e083
FIX: gemini tool call hanging (#3898)
angelahning Aug 7, 2025
0c28228
Bump auto-compact threshold to 80% (#3925)
katzdave Aug 7, 2025
a40685f
show status of osx codesigning and increase timeout (#3926)
finn-block Aug 7, 2025
e5e6522
added gpt5 context limit (#3927)
zanesq Aug 7, 2025
1630412
add gpt-5 to openai provider format (#3924)
mnicholson110 Aug 7, 2025
43d6d1a
chore: rmcp 0.5.0 (#3935)
jamadeo Aug 8, 2025
e124bb0
feat: first time automated ollama install experience and openrouter (…
michaelneale Aug 8, 2025
719b569
mcp/developer: Refactor to use tokio SplitStream (#3894)
cgwalters Aug 8, 2025
b38aa16
feat: streamline list args on cli (#3937)
baxen Aug 8, 2025
b88c221
docs: migrate streamable config to consolidated component (#3936)
dianed-square Aug 8, 2025
f1b833f
Move hardcoded LLM prompts to template files (#3934)
DOsinga Aug 8, 2025
5bdbbd0
Add a message about DCO to CONTRIBUTING.md (#3741)
finn-block Aug 8, 2025
48c9af0
Sanitize Tags Unicode Block (#3920)
amed-xyz Aug 8, 2025
506392e
fix: disable signing for release branches until we figure out keys fo…
alexhancock Aug 8, 2025
0eb0108
Use cross in linux bundle workflow (#3950)
jamadeo Aug 8, 2025
48c1ec8
remove fallback routing to hub/home for unknown routes (#3954)
zanesq Aug 8, 2025
595ece7
chore: update linux build - don't run on every PR (#3961)
jamadeo Aug 8, 2025
caa22fc
docs: update jetbrains tutorial (#3971)
dianed-square Aug 8, 2025
f3b7409
Add Sunno Song Generator To Recipe Cookbook (#3969)
EbonyLouis Aug 8, 2025
b61b3cd
Dagger container-use MCP (#3932)
iandouglas Aug 8, 2025
2c89010
Fix file extension on signed osx release (#3974)
finn-block Aug 8, 2025
5861f65
Revert "Fix file extension on signed osx release (#3974)"
blackgirlbytes Aug 9, 2025
565630e
Docs: Add Kiwi Flight Search Extension Tutorial (#3985)
blackgirlbytes Aug 9, 2025
45e0ec2
Adding better deeplink support for streamable-http (#3986)
blackgirlbytes Aug 9, 2025
7eca695
blog: subagents workshop (#3993)
angiejones Aug 10, 2025
e130c3a
add missing dependencies for developer setup (#3930)
burka Aug 11, 2025
ab0b078
feat: Add `GOOSE_TERMINAL` env variable to spawned terminals (#3911)
iamrajiv Aug 11, 2025
cd076e3
docs: MCP-ui blog content (#3996)
michaelneale Aug 11, 2025
46cc89d
chore(release): release version 1.3.0 (#3921)
alexhancock Aug 11, 2025
2b00a14
docs: update release docs with an additional step needed + adjust lis…
alexhancock Aug 11, 2025
8e503df
Remove PR trigger for Linux build workflow (#4008)
jamadeo Aug 11, 2025
99a40bd
ci: correctly match doc only changes (#4009)
alexhancock Aug 11, 2025
566b9dc
To-Do Tools (#3902)
tlongwell-block Aug 11, 2025
9d2b6de
Docs: provider and model run options (#4013)
emma-squared Aug 11, 2025
615d1fc
feat(cli): Add --name/-n to session remove and --id/-i alias for sess…
GaryZhous Aug 11, 2025
c2859fd
feat: add @-mention file reference expansion to .goosehints (#3873)
kathawthorne Aug 11, 2025
dd50474
Remove cognitive complexity clippy lint (#4010)
jamadeo Aug 12, 2025
168366b
fit: default ollama port (#4001)
michaelneale Aug 12, 2025
d6341e9
fix: enable 'goose://' handler for debian systems (#3952)
eyelight Aug 12, 2025
c5abcb7
Actually send cancellation to MCP servers (#3865)
jamadeo Aug 12, 2025
3201381
blog: post on lead/worker model (#3994)
angiejones Aug 12, 2025
dab1415
Move summarize button inside of context view (#4015)
katzdave Aug 12, 2025
b0d3c7d
sanitize message content on deserialization (#3966)
amed-xyz Aug 12, 2025
086c4ea
Docs: Cost tracking in CLI (#4043)
emma-squared Aug 12, 2025
2eca4b8
MCP session replay integration test (#3939)
jamadeo Aug 12, 2025
8374cbf
Add mcp automated testing blog (#4004)
ravarora2 Aug 12, 2025
88b0131
docs: rename sessions (#4053)
dianed-square Aug 12, 2025
bd1eff5
feat: ToolError migration to ErrorData (#4051)
alexhancock Aug 12, 2025
4ac530a
Better provider logging (#4052)
DOsinga Aug 12, 2025
e75f2f2
fix: this should be a debug message not a warn (#4024)
michaelneale Aug 12, 2025
015eca8
blog: cleaning up some posts (#4050)
angiejones Aug 12, 2025
27e6155
docs: add window title (#4059)
dianed-square Aug 13, 2025
cd15482
ci: fix markdown file pattern to skip builds for all .md files (#4061)
angiejones Aug 13, 2025
c5e6916
fix: delete dialog layout (#4037)
par5ul1 Aug 13, 2025
f055b05
docs: mcp-ui support (#4049)
dianed-square Aug 13, 2025
4f3038b
fix: ctrl-C interruption in the CLI (#4057)
jamadeo Aug 13, 2025
8217ab1
ci: fix docs-only filter to properly skip tests for documentation cha…
blackgirlbytes Aug 13, 2025
8b195a7
fix: flag out uncompilable bit in windows (#4068)
jamadeo Aug 13, 2025
5f5f6eb
Docs: Troubleshooting tip - Nodejs path on windows (#4065)
blackgirlbytes Aug 13, 2025
6583480
fix(build): feed electronforge the icon explicitly for linux (#4045)
eyelight Aug 13, 2025
a7f158e
speed up loading extensions by loading in parallel (#4054)
zanesq Aug 13, 2025
c42da79
CLI: improve model selection ux (#4071)
angelahning Aug 13, 2025
84d0ca1
cleanup memory in chat (#4073)
zanesq Aug 13, 2025
1a58892
docs: make accurate the comments with links to unsigned builds of the…
alexhancock Aug 13, 2025
68dd328
Load recipe deeplinks in single window when app is closed (#4048)
zanesq Aug 13, 2025
a4d6bf3
Blog: How Pulse MCP Used Goose to Automate Their Newsletter (#4075)
blackgirlbytes Aug 13, 2025
bedc936
docs: custom context file names (#4077)
dianed-square Aug 13, 2025
41cb33b
docs: Blog - How I Used Goose to Rebuild My Website (#4076)
taniandjerry Aug 14, 2025
7cbba7e
blog: agent coordination patterns (#4086)
angiejones Aug 14, 2025
f2e335c
Skip ci builds for docs (#4087)
blackgirlbytes Aug 14, 2025
80826c2
Token counting reliability + summarization integration. (#3721)
katzdave Aug 14, 2025
09f0cf7
blog: fixing links (#4089)
angiejones Aug 14, 2025
e173c22
Do not fetch pricing information if GOOSE_CLI_SHOW_COST is false (#3901)
ayax79 Aug 14, 2025
9826161
fix: hide console window for stdio extensions on Windows (#4085)
jamadeo Aug 14, 2025
290d29e
fix(cli): fix compiling issue on windows system by adding a missing p…
GaryZhous Aug 14, 2025
d7e761c
Reroute routes (#4088)
DOsinga Aug 14, 2025
28b106a
chore: add info tooltip to share session button (#4038)
par5ul1 Aug 14, 2025
d9b0e7f
fix: update dictation settings handling and improve user feedback (#4…
par5ul1 Aug 14, 2025
70c70e6
quick typo fix pulse blog (#4095)
blackgirlbytes Aug 14, 2025
c498fa0
docs: Add missing references to smart_approve mode. (#4094)
jonyucra-square Aug 14, 2025
f609f27
remove and cleanup unused code (#4074)
zanesq Aug 14, 2025
63b67bc
fix not being able to add spaces to activity message area (#4055)
zanesq Aug 14, 2025
9a1aa12
docs: fix experimental warning (#4102)
dianed-square Aug 15, 2025
ce3d574
Add Youtube short to Kiwi MCP tutorial (#4107)
blackgirlbytes Aug 15, 2025
a98ef25
chore: Delete ARCHITECTURE.md (#4108)
jamadeo Aug 15, 2025
f2e81a3
E2E tests working again (#4103)
zanesq Aug 15, 2025
285e110
chore(release): release version 1.4.0 (#4069)
alexhancock Aug 15, 2025
8596368
Fixing typos (#4114)
blackgirlbytes Aug 15, 2025
6e022a9
Sanitize Tags Unicode Block at prompt level (#4047)
amed-xyz Aug 15, 2025
a789396
feat(mcp): Persist OAuth credentials to keyring (#4007)
jamadeo Aug 15, 2025
b000911
feat: iterating on summarize oneshot prompt (#4113)
alexhancock Aug 15, 2025
28228d8
docs: add streamable_http install links (#4130)
dianed-square Aug 16, 2025
b235596
chore: remove vector search tool selection strategy (#3933)
wendytang Aug 18, 2025
78c5624
feat: adds cursor-agent as a cli provider (#4101)
roshbhatia Aug 18, 2025
c8d9578
docs: fix warning message (#4148)
angiejones Aug 18, 2025
4321180
Recipe config to limit tool availability (#4020)
jsibbison-square Aug 18, 2025
ccbf3f9
chore(deps): bump brace-expansion from 1.1.11 to 1.1.12 in /documenta…
dependabot[bot] Aug 18, 2025
62083c8
Docs: Auto-compact context (#4116)
emma-squared Aug 18, 2025
b090d34
Blog: The AI Skeptic’s Guide to Context Windows (#4152)
blackgirlbytes Aug 18, 2025
8c2521c
docs: remove figma MCP from suggested servers (#4123)
jamadeo Aug 18, 2025
e16f9ef
docs: add integrated MCP server config to jetbrains tutorial (#4120)
dianed-square Aug 18, 2025
6522dc1
Temporarily disable TODO Tool (#4158)
katzdave Aug 18, 2025
112ad20
fix: consistent font sizing in ToolCallWithResponse (#4167)
alexhancock Aug 18, 2025
818486d
Docs: @-mentions in goosehints (#4171)
emma-squared Aug 18, 2025
a14f087
upgraded all npm packages and fixed related issues (#4072)
zanesq Aug 18, 2025
7d7f08d
blog: Transforming AI Assistance with Goose Mentor Mode (#4151)
joeeuston-dev Aug 18, 2025
73e4839
Retry all 500 codes (#4160)
DOsinga Aug 19, 2025
e5075ea
feat(ui): Implement in-place message editing with re-response (#3798)
bzqzheng Aug 19, 2025
5c1789a
Unlist figma tutorial (#4186)
blackgirlbytes Aug 19, 2025
867752a
Fix tests from upstream changes and add testing to lint staged and ci…
zanesq Aug 19, 2025
2bc297c
chore(release): release version 1.5.0 (#4169)
alexhancock Aug 19, 2025
93949bb
Added tests for extensions functionality (#3794)
zanesq Aug 19, 2025
df0a6c4
Remove unused extension stuff (#4166)
DOsinga Aug 19, 2025
70f0173
Move out app init (#4185)
DOsinga Aug 19, 2025
33bf5a4
chore: remove the google drive built-in extension (#4187)
jamadeo Aug 19, 2025
4f4e8ac
Desktop alerts when suspicious unicode characters found in Recipe (#4…
amed-xyz Aug 19, 2025
1d93a59
docs: goose_terminal env var (#4205)
dianed-square Aug 19, 2025
942ef5b
Custom providers update (#4099)
DOsinga Aug 19, 2025
c736a95
docs: openrouter and ollama easy desktop setup (#4195)
dianed-square Aug 19, 2025
62121c6
removed tests from lint-staged (#4203)
zanesq Aug 19, 2025
240084c
Remove dead code and old settings migration (#4180)
jamadeo Aug 20, 2025
ba0f55d
feat(mcp/developer): accept -1 for insert_line number (#4112)
understood-the-assignment Aug 20, 2025
80ce454
feat: add remark-breaks plugin to preserve single newlines in markdow…
Abhijay007 Aug 20, 2025
7c2b40c
Clean up langfuse docs and scripts (#4220)
jamadeo Aug 20, 2025
e54e173
Test: Add CI/CD workflow with fixes from PR #4223
dianed-square Aug 20, 2025
aab1df8
Fix: Resolve keyring and permissions issues
dianed-square Aug 20, 2025
32a946f
Fix: Correct YAML indentation to 2 spaces
dianed-square Aug 20, 2025
8d501b8
Add simple test workflow to validate YAML syntax
dianed-square Aug 20, 2025
8e3b582
Remove problematic test workflow file
dianed-square Aug 20, 2025
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
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# CODEOWNERS file for block/goose repository
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

# Documentation owned by DevRel team
/documentation/ @block/goose-devrel

2 changes: 1 addition & 1 deletion .github/workflows/build-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
ref:
type: string
required: false
default: 'refs/heads/main'
default: ""

name: "Reusable workflow to build CLI"

Expand Down
170 changes: 86 additions & 84 deletions .github/workflows/bundle-desktop-intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,9 @@ on:
ref:
type: string
required: false
default: 'refs/heads/main'
default: ''
secrets:
CERTIFICATE_OSX_APPLICATION:
description: 'Certificate for macOS application signing'
required: false
CERTIFICATE_PASSWORD:
description: 'Password for the macOS certificate'
required: false
APPLE_ID:
description: 'Apple ID for notarization'
required: false
APPLE_ID_PASSWORD:
description: 'Password for the Apple ID'
required: false
APPLE_TEAM_ID:
description: 'Apple Team ID'
OSX_CODESIGN_ROLE:
required: false

name: Reusable workflow to bundle desktop app for Intel Mac
Expand All @@ -48,41 +35,19 @@ jobs:
bundle-desktop-intel:
runs-on: macos-latest
name: Bundle Desktop App on Intel macOS
permissions:
id-token: write
contents: read
steps:
# Check initial disk space
- name: Check initial disk space
run: df -h

# Validate Signing Secrets if signing is enabled
- name: Validate Signing Secrets
if: ${{ inputs.signing }}
run: |
if [[ -z "${{ secrets.CERTIFICATE_OSX_APPLICATION }}" ]]; then
echo "Error: CERTIFICATE_OSX_APPLICATION secret is required for signing."
exit 1
fi
if [[ -z "${{ secrets.CERTIFICATE_PASSWORD }}" ]]; then
echo "Error: CERTIFICATE_PASSWORD secret is required for signing."
exit 1
fi
if [[ -z "${{ secrets.APPLE_ID }}" ]]; then
echo "Error: APPLE_ID secret is required for signing."
exit 1
fi
if [[ -z "${{ secrets.APPLE_ID_PASSWORD }}" ]]; then
echo "Error: APPLE_ID_PASSWORD secret is required for signing."
exit 1
fi
if [[ -z "${{ secrets.APPLE_TEAM_ID }}" ]]; then
echo "Error: APPLE_TEAM_ID secret is required for signing."
exit 1
fi
echo "All required signing secrets are present."

- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
ref: ${{ inputs.ref }}
# Only pass ref if it's explicitly set, otherwise let checkout action use its default behavior
ref: ${{ inputs.ref != '' && inputs.ref || '' }}
fetch-depth: 0

# Update versions before build
Expand All @@ -98,22 +63,6 @@ jobs:
cd ui/desktop
npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version

# Pre-build cleanup to ensure enough disk space
- name: Pre-build cleanup
run: |
source ./bin/activate-hermit
echo "Performing pre-build cleanup..."
# Clean npm cache
npm cache clean --force || true
# Clean any previous build artifacts
rm -rf target || true
# Clean Homebrew cache
brew cleanup || true
# Remove unnecessary large directories
rm -rf ~/Library/Caches/* || true
# Check disk space after cleanup
df -h

- name: Cache Cargo registry
uses: actions/cache@2f8e54208210a422b2efd51efaa6bd6d7ca8920f # pin@v3
with:
Expand Down Expand Up @@ -185,14 +134,16 @@ jobs:
cp temporal-service/temporal-service ui/desktop/src/bin/temporal-service
cp bin/temporal ui/desktop/src/bin/temporal

- name: Add MacOS certs for signing and notarization
if: ${{ inputs.signing }}
run: ./scripts/add-macos-cert.sh
working-directory: ui/desktop
env:
CERTIFICATE_OSX_APPLICATION: ${{ secrets.CERTIFICATE_OSX_APPLICATION }}
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}

- name: Cache npm dependencies
uses: actions/cache@2f8e54208210a422b2efd51efaa6bd6d7ca8920f # pin@v3
with:
path: |
ui/desktop/node_modules
.hermit/node/cache
key: intel-npm-cache-v1-${{ runner.os }}-${{ hashFiles('ui/desktop/package-lock.json') }}
restore-keys: |
intel-npm-cache-v1-${{ runner.os }}-

- name: Install dependencies
run: source ../../bin/activate-hermit && npm ci
working-directory: ui/desktop
Expand All @@ -208,8 +159,7 @@ jobs:
- name: Check disk space before bundling
run: df -h

- name: Make Unsigned App
if: ${{ !inputs.signing }}
- name: Build App
run: |
source ../../bin/activate-hermit
attempt=0
Expand All @@ -226,27 +176,79 @@ jobs:
fi
working-directory: ui/desktop

- name: Make Signed App
- name: Configure AWS credentials
if: ${{ inputs.signing }}
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4
with:
role-to-assume: "${{ secrets.OSX_CODESIGN_ROLE }}"
aws-region: us-west-2

- name: Codesigning and Notarization
if: ${{ inputs.signing }}
run: |
source ../../bin/activate-hermit
attempt=0
max_attempts=2
until [ $attempt -ge $max_attempts ]; do
npm run bundle:intel && break
attempt=$((attempt + 1))
echo "Attempt $attempt failed. Retrying..."
sleep 5
done
if [ $attempt -ge $max_attempts ]; then
echo "Action failed after $max_attempts attempts."
set -e

echo "⬆️ uploading unsigned app"
source_job_url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
unsigned_url="s3://block-goose-artifacts-bucket-production/unsigned/goose-${GITHUB_SHA}-${{ github.run_id }}-intel.zip"

zip -q -u -r out/Goose-darwin-x64/Goose_intel_mac.zip entitlements.plist

# upload unsigned goose to transfer bucket so it can be passed to lambda
aws s3 cp --quiet out/Goose-darwin-x64/Goose_intel_mac.zip "${unsigned_url}"

# begin signing
echo "🚀 launching signing process"
aws lambda invoke \
--function-name codesign_helper \
--cli-binary-format raw-in-base64-out \
--payload "{\"source_s3_url\": \"${unsigned_url}\", \"source_job_url\": \"${source_job_url}\"}" \
response.json > /dev/null

if [ "$(jq -r .statusCode response.json)" != "200" ]; then
echo "⚠️ lambda function did not return expected status code"
exit 1
fi

build_number="$(jq -r .body.build_number response.json)"

start_time=$(date +%s)

while sleep 30; do
aws lambda invoke \
--function-name codesign_helper \
--cli-binary-format raw-in-base64-out \
--payload "{\"source_s3_url\": \"${unsigned_url}\", \"build_number\": \"${build_number}\"}" \
response.json > /dev/null

if [ "$(jq -r .statusCode response.json)" != "200" ]; then
echo "⚠️ signing request returned unexpected response code $(jq -r .statusCode response.json):"
jq . response.json
exit 1
fi

state="$(jq -r .body.state response.json)"

if [ "${state}" == "completed" ]; then
echo "✅ signing complete ($(($(date +%s) - start_time))s)"
break
fi

if [ $(($(date +%s) - start_time)) -ge 3600 ]; then
echo "⚠️ timed out ($(($(date +%s) - start_time))s)"
exit 1
fi

echo "⏲️ waiting for signing to complete (${state}: $(($(date +%s) - start_time))s)"
done

# parse lambda response
signed_url=$(jq -r .body.destination_url response.json)

# download the signed app from S3
echo "⬇️ downloading signed app"
aws s3 cp --quiet "${signed_url}" out/Goose-darwin-x64/Goose_intel_mac.zip
working-directory: ui/desktop
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

- name: Final cleanup before artifact upload
run: |
Expand Down
Loading
Loading