<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Make npm scripts work on Windows by replacing rm -rf with rimraf and
using cross-env for environment variables. This enables local dev and
packaging on Windows without WSL.
- **Refactors**
- Changed clean to use rimraf and delete out and scaffold/node_modules.
- Prefixed dev:engine, staging:engine, and staging:gateway with
cross-env.
- **Dependencies**
- Added rimraf ^6.0.1. Run npm install.
<!-- End of auto-generated description by cubic. -->
Co-authored-by: 顾颢 <guhao@dayee.com>
Fixes#710
This PR implements comprehensive Azure OpenAI integration for Dyad,
enabling users to leverage Azure
OpenAI models through proper environment variable configuration. The
implementation adds Azure as a
supported provider with full integration into the existing language
model architecture, including support
for GPT-5 models. Key features include environment-based
configuration using `AZURE_API_KEY` and `AZURE_RESOURCE_NAME`,
specialized UI components that provide clear
setup instructions and status indicators, and seamless integration with
Dyad's existing provider system.
The Azure provider leverages the @ai-sdk/azure package (v1.3.25) for
compatibility with the current
TypeScript language model interfaces.
The implementation includes robust error handling for missing
configuration, comprehensive test coverage
with 9 new unit tests covering critical functionality like model client
creation and error scenarios, and
an E2E test for the Azure-specific settings UI.
<img width="1510" height="908" alt="Screenshot 2025-08-18 at 9 14 32 PM"
src="https://github.com/user-attachments/assets/04aa99e1-1590-4bb0-86c9-a67b97bc7500"
/>
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Will Chen <willchen90@gmail.com>
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Adds an explicit Husky pre-commit setup to run the formatter and linter
before each commit. Replaces the auto-run prepare hook with a manual npm
run init-precommit command.
- **Migration**
- Run npm run init-precommit once in your repo to install the pre-commit
hook.
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Bump version from 0.18.0-beta.1 to the stable 0.18.0. Updates
package.json to finalize the v0.18.0 release for publishing.
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Bumped the package version from 0.18.0-beta.1 to 0.18.0-beta.2 to
prepare the next beta release.
<!-- End of auto-generated description by cubic. -->
- [x] Update chat_stream_handlers
- [x] Update token handlers
- [x] Update HomeChatInput
- [x] update lexical chat input: do not allow referencing same app
(current app, or other already selected apps)
- [x] I don't think smart context will work on this...
- [x] Enter doesn't clear...
TODOs:
- [x] Do restart when checkout / restore if there is a DB
- [x] List all branches (branch id, name, date)
- [x] Allow checking out versions with no DB
- [x] safeguard to never delete main branches
- [x] create app hook for neon template
- [x] weird UX with connector on configure panel
- [x] tiny neon logo in connector
- [x] deploy to vercel
- [x] build forgot password page
- [x] what about email setup
- [x] lots of imgix errors
- [x] edit file - db snapshot
- [x] DYAD_DISABLE_DB_PUSH
- [ ] update portal doc
- [x] switch preview branch to be read-only endpoint
- [x] disable supabase sys prompt if neon is enabled
- [ ] https://payloadcms.com/docs/upload/storage-adapters
- [x] need to use main branch...
Phase 2?
- [x] generate DB migrations
This uses Gemini's native [thinking
summaries](https://cloud.google.com/vertex-ai/generative-ai/docs/thinking#thought-summaries)
which were recently added to the API.
Why? The grafted thinking would sometimes cause weird issues where the
model, especially Gemini 2.5 Flash, got confused and put dyad tags like
`<dyad-write>` inside the `<think>` tags.
This also improves the UX because you can see the native thoughts rather
than having the Gemini response load for a while without any feedback.
I tried adding Anthropic extended thinking, however it requires temp to
be set at 1, which isn't ideal for Dyad's use case where we need precise
syntax following.