Commit Graph

4875 Commits

Author SHA1 Message Date
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