Sincroniza upstream e refina descoberta de provedores#39
Sincroniza upstream e refina descoberta de provedores#39gabrielMalonso merged 23 commits intomainfrom
Conversation
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com>
- Merge upstream/main into the local branch - Update auth cookie naming, port probing, and provider discovery - Refresh composer, git, and workspace logic with new tests
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 811573c832
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
apps/desktop/src/main.ts
Outdated
| const DESKTOP_UPDATE_CHANNEL = "latest"; | ||
| const DESKTOP_UPDATE_ALLOW_PRERELEASE = false; | ||
| const DESKTOP_LOOPBACK_HOST = "127.0.0.1"; | ||
| const DESKTOP_REQUIRED_PORT_PROBE_HOSTS = ["0.0.0.0", "::"] as const; |
There was a problem hiding this comment.
Stop hard-failing desktop startup on IPv6-unavailable hosts
Desktop bootstrap now requires a candidate port to be bindable on 127.0.0.1, 0.0.0.0, and ::. Because resolveDesktopBackendPort rejects the port if any host check fails, environments where IPv6 wildcard bind is unsupported (for example, IPv6 disabled and bind returns EAFNOSUPPORT) will reject every port and fail startup with "No desktop backend port is available..." even though loopback bind would succeed. This makes desktop launch fail on a real class of host configurations.
Useful? React with 👍 / 👎.
| Effect.catch((cause) => | ||
| isMissingSecretFileError(cause) | ||
| cause.reason._tag === "NotFound" | ||
| ? Effect.succeed(null) |
There was a problem hiding this comment.
Guard secret-store error shape before reading reason tag
The catch path now reads cause.reason._tag without first checking that cause is a PlatformError. If a non-Platform error reaches this handler (for example from an alternate FileSystem layer or unexpected defect), this throws inside the error handler itself and bypasses the intended SecretStoreError fallback. That turns a recoverable missing-secret branch into an unhandled failure path.
Useful? React with 👍 / 👎.
- Move composer placeholder logic into t3code-custom/chat - Extract send orchestration into t3code-custom/hooks/useComposerSendExtension - Trim extra snapshot state from ComposerPromptEditor
- Fetch Codex provider commands and skills for the composer menu - Treat network-accessible startup probing as mode-dependent - Expand slash command item typing to accept discovered commands
- Keep the primary send button width stable on narrower layouts - Raise the wide-actions compact breakpoint for the footer - Adjust user timeline text width estimate to match browser measurements
- Move compact controls after the menu - Add a separator before footer extension controls
- Add optional `onPasteCapture` to the prompt editor - Wire ChatComposer to use the custom extension paste handler in capture phase
- Guard ServerSecretStore NotFound handling against non-Platform errors - Add a small footer width allowance so plan follow-up layouts stay compact
Summary
Testing
bun fmtbun lintbun typecheckbun run test