jingyang
a0fb462148
fix(costcenter): improve payment QR scanning ( #7151 )
2026-08-04 10:45:59 +08:00
zijiren
6c28b33cd8
fix(account): make hourly billing reconciliation resumable and idempotent ( #7126 )
...
* fix(account): make hourly billing reconciliation resumable and idempotent
- schedule every ready billing hour from a persisted Mongo checkpoint
- retry failed owner reconciliation and preserve checkpoint progress
- use stable billing IDs with Mongo upsert semantics
- recover stable unsettled billings independently from monitor data
- make Cockroach balance and credits deductions idempotent
- reconstruct historical debt and subscription state using transaction UpdatedAt
- scope subscription history queries to active workspaces in the target hour
- add focused unit and Testcontainers runtime coverage
* perf
* fix(account): restore hourly billing deduction semantics
* feat(account): bound billing checkpoint catch-up window
- add BILLING_MAX_CATCHUP_DURATION with a default of 24h
- limit historical billing replay to the configured duration
- preserve first-start behavior to process only the latest ready hour
- log skipped hours when the persisted checkpoint exceeds the replay window
- expose durable checkpoint lag and windowed pending checkpoint metrics
- wire the setting into the account controller Helm chart
- add bounded catch-up, first-start, validation, and metric tests
* fix: ci
* perf(account): optimize indexed historical billing queries
- replace full DebtStatusRecord loading with per-user LATERAL lookup
- use half-open billing time boundaries for historical debt state
- add composite indexes for debt, subscription, and credits queries
- add Testcontainers runtime and execution-plan coverage for billing paths
- verify Mongo billing indexes and repeated initialization behavior
2026-08-03 16:52:51 +08:00
jingyang
78bf640d30
feat(desktop): honor shared app ordering ( #7150 )
2026-08-03 15:03:49 +08:00
yy
46682b1023
fix(stargz): build image and disable leader election ( #7146 )
...
* fix(ci): build stargz webhook image
* fix(stargz): disable leader election by default
2026-07-31 17:20:46 +08:00
yy
15ad047b7a
fix(stargz): annotate injected runtime pods ( #84 ) ( #7144 )
...
* fix(stargz): annotate injected runtime pods (#84 )
* fix(stargz): annotate injected runtime pods
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
* fix(stargz): satisfy lint in injector test (#85 )
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
2026-07-31 16:21:43 +08:00
jingyang
f841fedada
fix(applaunchpad): use browser timezone for date ranges ( #7132 )
...
* fix(applaunchpad): use Shanghai time for date ranges
* fix(costcenter): correct GTM currency field
* fix(applaunchpad): use browser timezone for date ranges
* fix(applaunchpad): reject nonexistent DST times
2026-07-29 16:48:55 +08:00
yy
9fedc50c05
feat(webhooks): add stargz runtime injector webhook ( #7042 )
...
* feat(webhooks): add stargz runtime injector webhook
Introduce a mutating admission webhook that injects runtimeClassName stargz
for Pods using configured internal registries, with devbox pod skip, deploy
scripts, and kustomize manifests for cluster rollout.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(webhooks): resolve stargz golangci-lint issues
Apply gci, gofumpt, and golines formatting and remove unused nolint directives.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix: ci lint
* fix(webhooks): resolve remaining stargz golangci-lint issues
Co-authored-by: Cursor <cursoragent@cursor.com >
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-07-29 14:37:33 +08:00
Yun Pan
3aa8b3ebfa
ci(semgrep): baseline push scans and bump semgrep ( #7133 )
2026-07-28 15:57:45 +08:00
Yun Pan
da3b7b6c03
ci(lifecycle): keep lint incremental on push ( #7130 )
...
* ci: keep lifecycle lint incremental on push
* ci(lifecycle): document incremental lint base
2026-07-28 14:36:56 +08:00
Nixieboluo
b11bbf2af5
fix(costcenter): wrong exp time display ( #7118 )
...
Signed-off-by: Nixieboluo <me@sagirii.me >
2026-07-27 19:25:41 +08:00
Yun Pan
17eb3112f2
ci(lifecycle): lint test-only changes without e2e ( #7119 )
...
* fix(lifecycle): add missing license headers
* ci: skip lifecycle checks for test-only changes
* ci: pin checkout in k3s e2e workflow
* ci: skip core e2e for lifecycle test-only changes
* ci(lifecycle): lint test-only changes
* ci(lifecycle): use current golangci-lint version
2026-07-27 17:55:28 +08:00
jingyang
48270c146d
fix(frontend): correct launchpad UTC ranges and guest startup ( #7121 )
...
* fix(desktop): prevent guest startup loop
* fix(applaunchpad): use UTC for log time ranges
* test(desktop): retain unit startup coverage
* fix(desktop): prevent workspace retry loop
2026-07-27 17:29:09 +08:00
Yun Pan
d19bd067c7
fix(lint): resolve controller and service issues ( #7095 )
...
* fix(lint): resolve controller and service issues
* fix(lifecycle): add missing test licenses
* fix(account): format debt sync code
* fix(lifecycle): resolve staging lint issues
* ci: update golangci-lint to v2.12.2
* ci: update golangci-lint config
* ci: adjust golangci-lint config
* fix(webhook): resolve admission lint issues
* fix(lint): resolve remaining module issues
* fix(scan): resolve semgrep findings
* fix(ci): remove deleted pay service from matrix
2026-07-27 14:45:50 +08:00
cuisongliu
41b39b524b
chore(frontend): remove switch-region provider ( #7101 )
2026-07-27 13:58:31 +08:00
Jiahui
e6ad22e041
chore(service): remove pay service ( #7112 )
...
remove pay service
# Conflicts:
# service/go.work.sum
2026-07-27 13:26:10 +08:00
Jiahui
cc4a72c142
fix(ci): ci build error ( #7114 )
...
fix ci
2026-07-27 12:07:14 +08:00
cuisongliu
5ca668dce6
chore(frontend): remove kubepanel provider ( #7105 )
2026-07-27 11:00:12 +08:00
cuisongliu
ac3023057b
chore(service): remove hubble and exceptionmonitor ( #7108 )
...
* chore(service): remove hubble and exceptionmonitor
* fix(service/account): restore compile with gin logger
* Revert "fix(service/account): restore compile with gin logger"
This reverts commit c57c974f3c .
2026-07-27 10:32:18 +08:00
Yun Pan
52ed8943dc
ci(lifecycle): lint changed modules in PRs ( #7096 )
...
* ci(lifecycle): lint changed modules in PRs
* ci(lifecycle): restrict changed module diff scope
2026-07-24 17:59:37 +08:00
zijiren
95131f1208
refactor(devbox): Devbox and related gateway services ( #7098 )
...
remove(devbox): Devbox and related gateway services
2026-07-24 17:56:28 +08:00
Che
f550632d91
feat(desktop): open Brain by default from root ( #7093 )
...
* feat(desktop): open Brain by default from root
* fix(desktop): prefer tab-local restore target
* fix(desktop): harden restore and guide exit behavior
2026-07-24 14:58:07 +08:00
Yun Pan
b38d2ae17d
fix(account): harden PAYG debt recovery ( #7089 )
...
* fix(account): recover debt status after balance normalization
* fix(account): retry debt refresh when user lock is busy
* fix(account): verify workspace subscriptions during debt recovery
2026-07-24 11:35:58 +08:00
Yun Pan
c0034114f5
fix(account): replay final debt namespace cleanup ( #7068 )
...
* fix(account): replay final debt namespace cleanup
* fix(account): wrap debt cleanup lint lines
* fix(account): shorten final debt sync error
* fix(account): bound debt cleanup replay requests
* fix(account): pass debt cleanup context
* fix(account): slow final debt replay interval
2026-07-24 11:35:01 +08:00
cuisongliu
d9f185ebe3
chore(frontend): remove invite provider ( #7090 )
2026-07-23 19:16:56 +08:00
cuisongliu
628eed3365
chore(cloudserver): remove cloudserver references from DeleteAccountModal and pnpm… ( #7080 )
...
chore: remove cloudserver references from DeleteAccountModal and pnpm-lock.yaml
Signed-off-by: cuisongliu <cuisongliu@qq.com >
2026-07-23 14:10:42 +08:00
cuisongliu
87cac0128a
chore(aiproxy): remove aiproxy provider references from configuration ( #7079 )
...
Signed-off-by: cuisongliu <cuisongliu@qq.com >
2026-07-23 14:07:16 +08:00
cuisongliu
1bc180ea11
chore(frontend): remove cronjob references from configuration files ( #7078 )
...
Signed-off-by: cuisongliu <cuisongliu@qq.com >
2026-07-23 14:06:05 +08:00
jingyang
912772634a
fix(desktop): secure verification codes in MongoDB ( #7071 )
...
* fix(desktop): secure verification code attempts
* fix(desktop): keep verification security in MongoDB
Use atomic MongoDB operations for verification attempts, single-use consumption, flow tickets, and send rate limits. Bind every verification request to a per-send challenge ID and remove the incorrect SQL migrations.
* fix(desktop): harden verification request validation
* fix(desktop): trust client IP only from gateway
* fix(account): route desktop checks through gateway
* Revert "fix(account): route desktop checks through gateway"
This reverts commit 2ed9931f8d .
* fix(desktop): allow trusted account controller
* fix(costcenter): keep desktop calls internal
* fix(costcenter): trust gateway client IP
* fix(desktop): make Cilium policy opt-in
2026-07-23 09:54:44 +08:00
xzy
53c913fbea
fix(objectstorage): tighten public read bucket policy ( #7066 )
...
* fix: tighten public read bucket policy
* fix(objectstorage): remove list access from public readwrite
* fix(objectstorage): preserve scaffold markers
2026-07-20 11:44:33 +08:00
Che
877e0c5d19
feat(desktop): delegate template URL deployment to Brain ( #7065 )
2026-07-17 15:36:58 +08:00
Yun Pan
7431b1264b
fix(account): use dns-safe workspace debt notice names ( #7063 )
2026-07-17 10:58:04 +08:00
jingyang
f2d1c4d789
fix(template): render v2alpha instance yaml before parsing ( #7022 )
...
* fix(template): render v2alpha instance yaml before parsing
* test(template): cover top-level conditional resources
2026-07-17 10:16:56 +08:00
Yun Pan
07770769be
fix(account): advance workspace debt cleanup status ( #7060 )
...
* fix(account): advance workspace debt cleanup status
* fix(account): clarify debt notification error log
2026-07-16 16:47:41 +08:00
Nixieboluo
63068941b7
feat(desktop): add Google One Tap auth ( #7048 )
2026-07-16 10:17:58 +08:00
Nixieboluo
0bd738f4ea
feat(desktop): add community entry ( #7054 )
...
Signed-off-by: Nixieboluo <me@sagirii.me >
2026-07-13 10:56:15 +08:00
Che
332bd3fad8
feat(desktop): hide Brain window header ( #7053 )
...
* docs(desktop): design hidden Brain window header
* feat(desktop): hide Brain window header
* chore(desktop): remove internal planning docs
2026-07-10 16:34:37 +08:00
jingyang
337e1c59b4
feat(auth): enrich session data and fix analytics event order ( #7047 )
...
* feat(auth): enrich session data and fix analytics event order
* fix(auth): remove oauth2 email enrichment
* fix(auth): send product user traits in login_success
* fix(auth): address analytics review feedback
* update
2026-07-06 17:57:19 +08:00
Nixieboluo
1a9c7b16b3
fix(launchpad): fix launchpad UI after deploy ( #7036 )
...
* fix(applaunchpad): polish launchpad ui
* fix(applaunchpad): polish app controls
* fix(applaunchpad): refine edit form labels
2026-06-30 14:44:28 +08:00
jingyang
521b711c49
fix(applaunchpad): preserve init container volumes during yaml patch ( #7028 )
2026-06-26 15:39:50 +08:00
yy
0f4453ae42
feat(webhook): add cname check flag ( #7029 )
...
feat: add cname check flag
2026-06-26 14:43:51 +08:00
jingyang
ef8cad3a9e
feat(template): support extra resource labels ( #6992 )
2026-06-26 10:02:58 +08:00
Wang Zhihao
571cba3e7d
fix(applaunchpad): prevent partial create for invalid names ( #7007 )
2026-06-25 15:48:16 +08:00
Nixieboluo
8b7472d94f
fix(applaunchpad): hydrate redirect form data ( #7018 )
...
* fix(applaunchpad): hydrate redirect form data
* fix(applaunchpad): narrow legacy storage values
* fix(applaunchpad): default legacy app form fields
* fix(applaunchpad): omit default public port
2026-06-24 18:01:50 +08:00
Nixieboluo
24eb6dcf86
fix(applaunchpad): resolve pod container names ( #7019 )
2026-06-24 18:00:46 +08:00
Nixieboluo
4c0fc774e4
fix(applaunchpad): hydrate legacy app quantities ( #7016 )
2026-06-24 10:12:12 +08:00
Nixieboluo
607befb336
fix(applaunchpad): serve scalar docs via api ( #7015 )
2026-06-23 17:23:34 +08:00
jingyang
1131adc2df
fix(dbprovider): hide empty monitor metrics ( #7005 )
...
* update
* add codegraph
2026-06-23 11:40:18 +08:00
jingyang
a35d74c8eb
fix(auth): preserve nickname on repeated login ( #7012 )
...
* fix(auth): preserve nickname on repeated login
* fix(auth): avoid profile writes during login
* chore(auth): remove unused login import
* fix(auth): preserve email binding on login
2026-06-23 10:59:13 +08:00
Bearix
a790df21b9
fix(monitor): fix launchpad monitor memory bug ( #7006 )
...
* fix(monitor): fix launchpad monitor bug.
* fix(monitor): fix launchpad monitor bug.
2026-06-17 16:53:53 +08:00
Bearix
d55fe067f0
fix(monitor): fix db monitor bug. ( #6997 )
...
* feat(monitor): fix db monitor bug.
* feat(monitor): fix db monitor bug.
* feat(monitor): fix db monitor bug.
2026-06-17 15:19:44 +08:00