CheesesNguyen
b18b2ebe9f
fix: Implement graceful token refresh degradation and enhance IDC SSO support with device registration loading for Kiro.
2026-01-28 14:47:04 +07:00
Luis Pater
ee54ee8825
Merge pull request #137 from geen02/fix/idc-auth-method-case-sensitivity
...
fix: case-insensitive auth_method comparison for IDC tokens
2026-01-27 20:38:03 +08:00
jyy
de6b1ada5d
fix: case-insensitive auth_method comparison for IDC tokens
...
The background refresher was skipping token files with auth_method values
like 'IdC' or 'IDC' because the comparison was case-sensitive and only
matched lowercase 'idc'.
This fix normalizes the auth_method to lowercase before comparison in:
- token_repository.go: readTokenFile() when filtering tokens to refresh
- background_refresh.go: refreshSingle() when selecting refresh method
Fixes the issue where 'IdC' != 'idc' caused tokens to be skipped entirely.
2026-01-27 13:39:38 +09:00
yuechenglong.5
f74a688fb9
refactor(auth): extract token filename generation into unified function
...
Add ExtractIDCIdentifier and GenerateTokenFileName functions to centralize
token filename generation logic. This improves code maintainability by:
- Extracting IDC identifier from startUrl for unique token file naming
- Supporting priority-based filename generation (email > startUrl > authMethod)
- Removing duplicate filename generation code from oauth_web.go
- Adding comprehensive unit tests for the new functions
2026-01-26 13:54:32 +08:00
Luis Pater
dbb433fcf8
Merge branch 'main' into plus
2026-01-25 21:51:02 +08:00
yuechenglong.5
8f780e7280
fix(kiro): always attempt token refresh on 401 before checking retry count
...
Refactor 401 error handling in both executeWithRetry and
executeStreamWithRetry to always attempt token refresh regardless of
remaining retry attempts. Previously, token refresh was only attempted
when retries remained, which could leave valid refreshed tokens unused.
Also add auth directory resolution in RefreshManager.Initialize to
properly resolve the base directory path before creating the token
repository.
2026-01-24 20:02:09 +08:00
hkfires
9f9fec5d4c
fix(auth): improve antigravity token exchange errors
2026-01-24 09:04:15 +08:00
hkfires
e95be10485
fix(auth): validate antigravity token userinfo email
2026-01-24 08:33:52 +08:00
hkfires
f3d58fa0ce
fix(auth): correct antigravity oauth redirect and expiry
2026-01-24 08:33:52 +08:00
hkfires
8c0eaa1f71
refactor(auth): export Gemini constants and use in handler
2026-01-24 08:33:52 +08:00
hkfires
405df58f72
refactor(auth): export Codex constants and slim down handler
2026-01-24 08:33:52 +08:00
hkfires
7cb6a9b89a
refactor(auth): export Claude OAuth constants for reuse
2026-01-24 08:33:51 +08:00
hkfires
c65407ab9f
refactor(auth): extract Antigravity OAuth constants to internal/auth
2026-01-24 08:33:51 +08:00
hkfires
9e59685212
refactor(auth): implement Antigravity AuthService in internal/auth
2026-01-24 08:33:51 +08:00
hkfires
4a4dfaa910
refactor(auth): replace sanitizeAntigravityFileName with antigravity.CredentialFileName
2026-01-24 08:33:51 +08:00
Luis Pater
b9ff916494
Merge branch 'main' into plus
2026-01-24 05:02:32 +08:00
hkfires
d5e3e32d58
fix(auth): normalize plan type filenames to lowercase
2026-01-23 20:13:09 +08:00
Cyrus
25b9df478c
fix(auth): normalize authMethod to lowercase on Kiro token import
...
- Add strings.ToLower() normalization in LoadKiroIDEToken()
- Add same normalization in LoadKiroTokenFromPath()
- Fixes issue where Kiro IDE exports "IdC" but code expects "idc"
2026-01-22 19:54:48 +08:00
yuechenglong.5
4c8026ac3d
chore(build): 更新 .gitignore 文件
...
- 添加 *.bak 文件扩展名到忽略列表
2026-01-21 21:38:47 +08:00
yuechenglong.5
194f66ca9c
feat(kiro): 添加后台令牌刷新通知机制
...
- 在 BackgroundRefresher 中添加 onTokenRefreshed 回调函数和并发安全锁
- 实现 WithOnTokenRefreshed 选项函数用于设置刷新成功回调
- 在 RefreshManager 中添加 SetOnTokenRefreshed 方法支持运行时更新回调
- 为 KiroExecutor 添加 reloadAuthFromFile 方法实现文件重新加载回退机制
- 在 Watcher 中实现 NotifyTokenRefreshed 方法处理刷新通知并更新内存Auth对象
- 通过 Service.GetWatcher 连接刷新器回调到 Watcher 通知链路
- 添加方案A和方案B双重保障解决后台刷新与内存对象时间差问题
2026-01-21 11:03:07 +08:00
yuechenglong.5
c9aa1ff99d
Merge remote-tracking branch 'origin/main'
...
# Conflicts:
# internal/auth/kiro/oauth_web.go
2026-01-21 10:31:55 +08:00
781456868@qq.com
a9ee971e1c
fix(kiro): improve auto-refresh and IDC auth file handling
...
Amp-Thread-ID: https://ampcode.com/threads/T-019bdb94-80e3-7302-be0f-a69937826d13
Co-authored-by: Amp <amp@ampcode.com >
2026-01-20 21:57:45 +08:00
781456868@qq.com
73cef3a25a
Merge remote-tracking branch 'upstream/main'
2026-01-20 21:57:16 +08:00
Luis Pater
c2bf600a39
Merge branch 'main' into plus
2026-01-20 13:50:41 +08:00
Luis Pater
059bfee91b
feat(auth): add hashed account ID to credential filenames for team plans
2026-01-20 11:36:29 +08:00
Luis Pater
1fef90ff58
Merge pull request #877 from zhiqing0205/main
...
feat(codex): include plan type in auth filename
2026-01-20 11:11:25 +08:00
yuechenglong.5
0f63d973be
Merge remote-tracking branch 'origin/main'
2026-01-20 10:20:03 +08:00
yuechenglong.5
fa2abd560a
chore: cherry-pick 文档更新和删除测试文件
...
- docs: 添加 Kiro OAuth web 认证端点说明 (ace7c0c )
- chore: 删除包含敏感数据的测试文件 (8f06f6a )
- 保留本地修改: refresh_manager, token_repository 等
2026-01-20 10:17:39 +08:00
781456868@qq.com
92fb6b012a
feat(kiro): add manual token refresh button to OAuth web UI
...
Amp-Thread-ID: https://ampcode.com/threads/T-019bd642-9806-75d8-9101-27812e0eb6ab
Co-authored-by: Amp <amp@ampcode.com >
2026-01-19 20:55:51 +08:00
781456868@qq.com
0e77e93e5d
feat: add Kiro OAuth web, rate limiter, metrics, fingerprint, background refresh and model converter
2026-01-18 15:04:29 +08:00
Luis Pater
a235fb1507
Merge branch 'main' into plus
2026-01-15 03:30:56 +08:00
Luis Pater
a1da6ff5ac
Fixed : #499 #985
...
feat(oauth): add support for customizable OAuth callback ports
- Introduced `oauth-callback-port` flag to override default callback ports.
- Updated SDK and login flows for `iflow`, `gemini`, `antigravity`, `codex`, `claude`, and `openai` to respect configurable callback ports.
- Refactored internal OAuth servers to dynamically assign ports based on the provided options.
- Revised tests and documentation to reflect the new flag and behavior.
2026-01-14 04:29:15 +08:00
zhiqing0205
aa8526edc0
fix(codex): use unicode title casing for plan
2026-01-06 10:24:02 +08:00
zhiqing0205
ac3ca0ad8e
feat(codex): include plan type in auth filename
2026-01-06 02:25:56 +08:00
Joao
349b2ba3af
refactor: improve error handling and code quality
...
- Handle errors in promptInput instead of ignoring them
- Improve promptSelect to provide feedback on invalid input and re-prompt
- Use sentinel errors (ErrAuthorizationPending, ErrSlowDown) instead of
string-based error checking with strings.Contains
- Move hardcoded x-amz-user-agent header to idcAmzUserAgent constant
Addresses code review feedback from Gemini Code Assist.
2025-12-23 10:20:14 +00:00
Joao
98db5aabd0
feat: persist refreshed IDC tokens to auth file
...
Add persistRefreshedAuth function to write refreshed tokens back to the
auth file after inline token refresh. This prevents repeated token
refreshes on every request when the token expires.
Changes:
- Add persistRefreshedAuth() to kiro_executor.go
- Call persist after all token refresh paths (401, 403, pre-request)
- Remove unused log import from sdk/auth/kiro.go
2025-12-23 10:00:14 +00:00
Joao
7fd98f3556
feat: add IDC auth support with Kiro IDE headers
2025-12-23 08:18:10 +00:00
Luis Pater
e755e567ea
Merge branch 'router-for-me:main' into main
2025-12-21 19:54:13 +08:00
Supra4E8C
9855615f1e
fix(gemini): avoid stale manual oauth prompt and accept schemeless callbacks
2025-12-20 19:03:38 +08:00
Supra4E8C
93414f1baa
feat (auth): CLI OAuth supports pasting callback URLs to complete login
...
- Added callback URL resolution and terminal prompt logic
- Codex/Claude/iFlow/Antigravity/Gemini login supports callback URL or local callback completion
- Update Gemini login option signature and manager call
- CLI default prompt function is compatible with null input to continue waiting
2025-12-20 18:25:55 +08:00
Ravens2121
cf9a246d53
feat(kiro): 新增 AWS Builder ID 授权码流程认证及用户邮箱获取增强
...
Amp-Thread-ID: https://ampcode.com/threads/T-019b2ecc-fb2d-713f-b30d-1196c7dce3e2
Co-authored-by: Amp <amp@ampcode.com >
2025-12-18 08:16:52 +08:00
Tsln
c46099c5d7
fix(kiro): remove the extra quotation marks from the protocol handler
2025-12-15 15:53:25 +08:00
Ravens2121
75793a18f0
feat(kiro): Add Kiro OAuth login entry and auth file filter in Web UI
...
为Kiro供应商添加WEB UI OAuth登录入口和认证文件过滤器
## Changes / 更改内容
### Frontend / 前端 (management.html)
- Add Kiro OAuth card UI with support for AWS Builder ID, Google, and GitHub login methods
- 添加Kiro OAuth卡片UI,支持AWS Builder ID、Google和GitHub三种登录方式
- Add i18n translations for Kiro OAuth (Chinese and English)
- 添加Kiro OAuth的中英文国际化翻译
- Add Kiro filter button in auth files management page
- 在认证文件管理页面添加Kiro过滤按钮
- Implement JavaScript methods: startKiroOAuth(), openKiroLink(), copyKiroLink(), copyKiroDeviceCode(), startKiroOAuthPolling(), resetKiroOAuthUI()
- 实现JavaScript方法:startKiroOAuth()、openKiroLink()、copyKiroLink()、copyKiroDeviceCode()、startKiroOAuthPolling()、resetKiroOAuthUI()
### Backend / 后端
- Add /kiro-auth-url endpoint for Kiro OAuth authentication (auth_files.go)
- 添加/kiro-auth-url端点用于Kiro OAuth认证 (auth_files.go)
- Fix GetAuthStatus() to correctly parse device_code and auth_url status
- 修复GetAuthStatus()以正确解析device_code和auth_url状态
- Change status delimiter from ':' to '|' to avoid URL parsing issues
- 将状态分隔符从':'改为'|'以避免URL解析问题
- Export CreateToken method in social_auth.go
- 在social_auth.go中导出CreateToken方法
- Register Kiro OAuth routes in server.go
- 在server.go中注册Kiro OAuth路由
## Files Modified / 修改的文件
- management.html
- internal/api/handlers/management/auth_files.go
- internal/api/server.go
- internal/auth/kiro/social_auth.go
2025-12-13 11:39:22 +08:00
Luis Pater
ba6aa5fbbe
Merge branch 'router-for-me:main' into main
2025-12-12 20:09:31 +08:00
hkfires
e7cedbee6e
fix(auth): prevent duplicate iflow BXAuth tokens
2025-12-12 19:57:19 +08:00
Luis Pater
2ba31ecc2d
Merge branch 'main' into plus
2025-12-09 17:51:18 +08:00
Luis Pater
c600519fa4
refactor(logging): replace log.Fatalf with log.Errorf and add error handling paths
2025-12-09 17:16:30 +08:00
Luis Pater
0d4f32a881
Merge branch 'router-for-me:main' into main
2025-12-08 10:20:08 +08:00
hkfires
e9eb4db8bb
feat(auth): refresh API key during cookie authentication
2025-12-08 09:48:31 +08:00
Luis Pater
f77c22e6ff
Merge branch 'main' into feature/kiro-integration
2025-12-06 11:52:59 +08:00