8272 Commits

Author SHA1 Message Date
Cornelius A. Ludmann
e9f25f4224
Replace npx with pinned npm-tools and add security hardening (#21166)
* [dev] disable npm lifecycle scripts and npx

* Add npm-tools

* update npm-tools

* dev/image/Dockerfile

* update

Co-authored-by: Ona <no-reply@ona.com>

* Bump leeay version to 0.10.6

Co-authored-by: Ona <no-reply@ona.com>

* Fix npx removal to also delete the target script

The symlink at /root/.nvm/.../bin/npx points to npx-cli.js.
Remove both to ensure npx is fully disabled.

Co-authored-by: Ona <no-reply@ona.com>

* Remove gce-github-runner usage from all workflows

Replace self-hosted GCE runner pattern with GitHub-hosted ubuntu-latest runners across all workflows. This removes the three-phase pattern (create-runner, use-runner, delete-runner) and simplifies workflow execution.

Changes:
- Remove create-runner and delete-runner jobs from all workflows
- Replace runs-on: ${{ needs.create-runner.outputs.label }} with runs-on: ubuntu-latest
- Remove create-runner from job dependencies
- Preserve all other job dependencies and concurrency controls

Affected workflows:
- build.yml (8 jobs)
- workspace-integration-tests.yml (4 jobs)
- ide-integration-tests.yml (4 jobs)
- preview-env-check-regressions.yml (4 jobs)
- preview-env-gc.yml (2 jobs)
- jetbrains-auto-update-template.yml (1 job)
- jetbrains-integration-test.yml (1 job)
- code-nightly.yml (1 job)
- preview-env-delete.yml (1 job)

Co-authored-by: Ona <no-reply@ona.com>

* [dev] use ubuntu-latest-16-cores for builds

* Fix container permissions for GitHub-hosted runners

Add 'options: --user root' to all container configurations to resolve EACCES permission errors when GitHub Actions tries to write to internal directories.

GitHub-hosted runners require containers to run as root to allow the Actions runtime to write to /__w/_temp/_runner_file_commands/ and other internal paths.

Affected workflows:
- build.yml (3 container jobs)
- workspace-integration-tests.yml (2 container jobs)
- ide-integration-tests.yml (2 container jobs)
- preview-env-check-regressions.yml (1 container job)
- preview-env-gc.yml (1 container job)
- jetbrains-auto-update-template.yml (1 container job)
- jetbrains-integration-test.yml (1 container job)
- code-nightly.yml (1 container job)

Co-authored-by: Ona <no-reply@ona.com>

* Fix dev/image build by adding leeway dependency for npm-tools

Create leeway generic build for dev/npm-tools and use it as a dependency in dev/image:docker build. This resolves the build error where npm-tools files were not accessible during Docker build.

Changes:
- Add dev/npm-tools/BUILD.yaml with generic package containing package.json and package-lock.json
- Add dev/npm-tools:pkg as dependency in dev/image/BUILD.yaml
- Update Dockerfile to use COPY from leeway dependency path (dev-npm-tools--pkg/)

This follows the established pattern used in other builds like install/installer where dependencies are copied from leeway-generated paths.

Co-authored-by: Ona <no-reply@ona.com>

* Fix npm-tools installation permissions in dev/image

Add chown command to fix EACCES permission error when installing npm-tools. The COPY command creates files owned by root, but npm ci runs as gitpod user and needs write access to create node_modules.

Changes:
- Add 'sudo chown -R gitpod:gitpod /opt/npm-tools' before npm ci
- This ensures the gitpod user can write to /opt/npm-tools/node_modules/

Error fixed:
  npm error code EACCES
  npm error syscall mkdir
  npm error path /opt/npm-tools/node_modules
  npm error errno -13

Co-authored-by: Ona <no-reply@ona.com>

* [dev] Split builds into branch and main

Co-authored-by: Ona <no-reply@ona.com>

---------

Co-authored-by: Cornelius Ludmann <cornelius@ona.com>
Co-authored-by: Ona <no-reply@ona.com>
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
2025-12-05 16:25:19 +01:00
Gero Posmyk-Leinemann
f650690d13
Bump alpine&runc versions (#21142)
* [image-builder-bob] Bump buildkit alpine 3.22 -> 3.22.2

Co-authored-by: Ona <no-reply@ona.com>

* [ws-daemon] Bump runc binary from 1.2.6 -> 1.2.8

---------

Co-authored-by: Ona <no-reply@ona.com>
2025-11-12 08:56:50 -05:00
Gero Posmyk-Leinemann
8e02e09f71
[CLC-2041] Block signups for Classic PAYG sunset (#21114)
Block new user signups when Classic PAYG sunset is enabled:

- Add isUserSignupBlockedBySunset() function in featureflags.ts
  - Checks if sunset is enabled for the installation
  - Exempts dedicated installations
  - Blocks all signups (new users don't have orgs/roles yet)

- Add signup blocking in generic-auth-provider.ts callback
  - Check before createNewUser() is called
  - Redirect blocked signups to https://app.ona.com/login
  - Log blocked signup attempts

This complements the existing login and workspace operation blocks
from CLC-2032, closing the signup path that was previously unblocked.

Co-authored-by: Ona <no-reply@ona.com>
2025-10-21 02:54:50 -04:00
Cornelius A. Ludmann
7421edc4e8
[CLC-2032] Fix Classic PAYG sunset bypass via websocket API (#21108)
The original sunset implementation only added checks to the new gRPC API
(WorkspaceServiceAPI) but missed the legacy websocket API (GitpodServerImpl).
This allowed users to bypass the sunset blocking through:

- Gitpod CLI/Local App (uses experimental/v1 API)
- JetBrains Gateway (uses websocket API directly)
- Public API with Personal Access Tokens
- Dashboard when feature flag is disabled

This fix adds the sunset check to both startWorkspace() and createWorkspace()
methods in GitpodServerImpl, using the same isWorkspaceStartBlockedBySunset()
function that's already used in WorkspaceServiceAPI.

The check:
- Blocks installation-owned users (no organizationId)
- Blocks users in non-exempted organizations
- Exempts dedicated installations
- Exempts organizations in the exemptedOrganizations list

Co-authored-by: Ona <no-reply@ona.com>
2025-10-17 08:19:39 -04:00
Gero Posmyk-Leinemann
d42b06d3b0
[CLC-2032] Block login and workspace operations for Classic PAYG sunset (#21100)
* [CLC-2032] Block login and workspace operations for Classic PAYG sunset

Implement feature flag-based blocking for Gitpod Classic PAYG users:

Backend:
- Add utility functions to check if user is blocked by sunset
- Block login attempts in /login route handler, redirect to app.ona.com
- Block workspace creation and start operations in workspace-service-api
- Exempt users with roles/permissions and users in exempted organizations

Frontend:
- Update login page to show 'Login with Ona' button when sunset is enabled
- Keep SSO login form visible for exempted organizations
- Hide sunset notice banner when flag is enabled
- Update heading to 'Gitpod Classic has sunset'

Feature flag: classic_payg_sunset_enabled (JSON with enabled boolean and exemptedOrganizations array)

Co-authored-by: Ona <no-reply@ona.com>

* Add oldLogin parameter to show full login UI for exempted orgs

When sunset is enabled on gitpod.io, users now see a simplified UI:
- 'Continue with Ona' button (default)
- Link to show all login options (?oldLogin=true)

With ?oldLogin=true parameter:
- Shows all OAuth provider buttons
- Shows SSO login form
- Full functionality for exempted organizations

The link preserves returnToPath parameter if present.

Co-authored-by: Ona <no-reply@ona.com>

* Refactor backend sunset checks into separate functions

Split sunset blocking logic into two functions:
- isUserLoginBlockedBySunset: checks roles/permissions exemption for login
- isWorkspaceStartBlockedBySunset: checks org-level exemption for workspace ops

Move ClassicPaygSunsetConfig interface to gitpod-protocol for reusability.
Pass organizationId explicitly to workspace blocking checks.

Co-authored-by: Ona <no-reply@ona.com>

* Use typed ClassicPaygSunsetConfig in frontend feature flag

Import ClassicPaygSunsetConfig type from gitpod-protocol and use it
as the default value for classic_payg_sunset_enabled feature flag.

This leverages TypeScript's generic type inference in useFeatureFlag:
- useFeatureFlag<K extends keyof FeatureFlags> returns FeatureFlags[K]
- For classic_payg_sunset_enabled, it now returns ClassicPaygSunsetConfig
- Other flags continue to return their respective types (boolean, string, etc.)

Updated Login.tsx to access .enabled property with type guard to handle
the union type (ClassicPaygSunsetConfig | boolean) during loading state.

This ensures type safety and consistency between frontend and backend.

Co-authored-by: Ona <no-reply@ona.com>

* Parse JSON string for classic_payg_sunset_enabled feature flag

ConfigCat text flags return strings, so we need to parse JSON on both
frontend and backend.

Backend (featureflags.ts):
- Send JSON.stringify(defaultConfig) to ConfigCat
- Parse returned string with JSON.parse()
- Handle errors gracefully with fallback to default

Frontend (featureflag-query.ts):
- Add parseFeatureFlagValue() helper for JSON flags
- Send stringified default for classic_payg_sunset_enabled
- Parse returned string value
- Maintain type safety with generic return types

This allows ConfigCat to store the flag as text while maintaining
the typed object structure in our code.

Co-authored-by: Ona <no-reply@ona.com>

* Exempt dedicated installations from sunset blocking

Add isDedicatedInstallation parameter to sunset check functions.
Dedicated installations always return false (not blocked) regardless
of feature flag state.

Changes:
- isUserLoginBlockedBySunset: add isDedicatedInstallation param
- isWorkspaceStartBlockedBySunset: add isDedicatedInstallation param
- UserController: pass config.isDedicatedInstallation to login check
- WorkspaceServiceAPI: inject Config and pass isDedicatedInstallation

This ensures the sunset only affects gitpod.io (PAYG) and not
dedicated installations.

Co-authored-by: Ona <no-reply@ona.com>

* update login page for Gitpod classic `gitpod.io` users

* fix

* Improve sunset UI: use primary button and remove redundant subheading

Co-authored-by: Ona <no-reply@ona.com>

* Update sunset UI heading to focus on Ona value proposition

Co-authored-by: Ona <no-reply@ona.com>

---------

Co-authored-by: Ona <no-reply@ona.com>
Co-authored-by: Siddhant Khare <siddhant@gitpod.io>
Co-authored-by: Cornelius A. Ludmann <github@cornelius-ludmann.de>
2025-10-15 09:06:36 -04:00
Robo Quat
9411dfce03
update index (#21092) 2025-10-09 06:32:42 -04:00
Robo Quat
a2227ff240
update index (#21078) 2025-10-03 08:57:32 -04:00
Robo Quat
faf8e13b52
update index (#21024) 2025-09-29 03:07:28 -04:00
Gero Posmyk-Leinemann
9e34aea982
Remove superfluous security feature flags and always enable protections (#21007)
* Remove superfluous security feature flags and always enable protections

- Remove context_env_var_validation feature flag - environment variable validation now always enabled
- Remove enable_nonce_validation feature flag - CSRF protection with nonce validation now always enabled
- Remove enable_strict_authorize_return_to feature flag - strict OAuth returnTo validation now always enabled
- Update tests to reflect permanent security measures
- Simplify code by removing conditional security logic

These security features should be permanently active rather than behind feature flags.
Addresses CLC-1618 by ensuring critical security protections cannot be accidentally disabled.

Co-authored-by: Ona <no-reply@ona.com>

* Fix unused import in envvar-prefix-context-parser.spec.ts

Remove unused Experiments import that was causing TypeScript compilation error.

Co-authored-by: Ona <no-reply@ona.com>

---------

Co-authored-by: Ona <no-reply@ona.com>
2025-09-22 11:53:22 -04:00
Gero Posmyk-Leinemann
bada41fb24
[dashboard] robots-meta: noindex -> noindex, nofollow, noarchive, nosnippet, noimageindex (#21064)
Co-authored-by: Ona <no-reply@ona.com>
2025-09-19 06:15:18 -04:00
Gero Posmyk-Leinemann
4adaad399b
fix: migrate from bitnami/mysql to bitnamilegacy/mysql (#21065)
- Update GitHub Actions workflow to use bitnamilegacy/mysql image
- Configure Helm chart to pull from docker.io/bitnamilegacy registry
- Update related comments to reflect the migration

Addresses bitnami deprecation of public Debian-based images.
Bitnami has moved existing images to bitnamilegacy repository
where they remain available for development use.

Fixes: CLC-1948

Co-authored-by: Ona <no-reply@ona.com>
2025-09-19 05:37:18 -04:00
Siddhant Khare
3d379e1ef3
cleanup Gitpod PAYG login CTAs (#21060) 2025-09-16 09:09:17 -04:00
Siddhant Khare
ab1533ca63
Added redirect logic to both QueryErrorBoundary.tsx (#21058) 2025-09-15 09:17:15 -04:00
Siddhant Khare
680dc0b182
fix: update open-in-gitpod SVG w/ improved design and dimensions (#21051) 2025-09-15 08:14:15 -04:00
Siddhant Khare
d3c64b19d4
feat(dashboard): redirect non-authenticated users from gitpod.io/# to app.ona.com/# (#21054)
Redirect non-signed-in Gitpod Classic PAYG users from `gitpod.io/#`(with hash fragments) to `app.ona.com/#` while preserving hash fragments. Only applies to users accessing workspace creation URLs, not regular gitpod.io visitors.
2025-09-15 08:07:15 -04:00
Siddhant Khare
a351fe1913
Update subscription message and enhance upgrade plan details for Gitpod's transition to Ona (#21053)
* fix: update subscription error message and enhance upgrade plan details for Gitpod's transition to Ona

* add req. line breaks

* Fix typo in UsageBasedBillingConfig message
2025-09-15 08:06:15 -04:00
Mirco Kater
fd4018ddf8
Update AppNotifications.tsx (#21038) 2025-09-15 04:18:15 -04:00
Siddhant Khare
c91acb905c
Chore copy updates (#21041)
* Chore copy updates

* fixes
2025-09-05 02:23:05 -04:00
Cornelius A. Ludmann
29f3c59f4e
Revert "Redact args in the logs of audit log service (#20853)" (#21039)
This reverts commit b007b1dcaa995fec9ee7aded2c7de402bd0c5493.

Co-authored-by: Ona <no-reply@ona.com>
2025-09-04 06:02:05 -04:00
Cornelius A. Ludmann
e585bf7d8d
fix: resolve workspace timeout parsing bug for mixed-unit durations (#21035)
* fix: resolve workspace timeout parsing bug for mixed-unit durations

Fixes critical bug where organization timeout settings like '90m' (displayed as '1h30m')
were incorrectly parsed as '1m' instead of the intended 90 minutes.

Root cause: Custom parsing logic used:
- duration.slice(-1) to get unit (only last character)
- parseInt(duration.slice(0, -1), 10) to get value (stopped at first non-digit)

This caused '1h30m' → '1m', '2h15m' → '2m', etc.

Solution: Replace custom validation with @arcjet/duration library:
- Exact TypeScript port of Go's time.ParseDuration
- Handles all Go duration formats correctly including mixed units
- Zero dependencies, professionally maintained
- Comprehensive test coverage added

Impact: Organization admins can now set workspace timeouts like '90m'
and they will correctly result in 90-minute timeouts instead of 1-minute.

Co-authored-by: Ona <no-reply@ona.com>

* fix: migrate from @arcjet/duration to parse-duration library

- Replace @arcjet/duration with parse-duration for better Go duration format support
- Fix workspace timeout validation to handle milliseconds instead of seconds
- Add regex validation to reject bare numbers without units
- Update parseGoDurationToMs to handle null returns properly
- All 108 tests passing, mixed-unit duration bug completely resolved

The @arcjet/duration library had usage warnings and parsing issues with
mixed-unit durations like '1h30m' being incorrectly parsed as '1m'.
parse-duration is better maintained (367 dependents, 285k weekly downloads),
has zero dependencies, and provides perfect Go duration format compatibility.

Co-authored-by: Ona <no-reply@ona.com>

* fix: handle empty/whitespace strings in parseGoDurationToMs

The parseGoDurationToMs function was throwing errors for empty strings
and whitespace-only strings, but these should return 0 duration.
This was causing failures in public-api tests that expect empty strings
to be converted to 0 duration.

- Handle empty or whitespace-only strings as 0 duration
- Maintain existing error handling for invalid duration formats
- All tests now pass (108/108 gitpod-protocol, 87/87 public-api)

Co-authored-by: Ona <no-reply@ona.com>

---------

Co-authored-by: Ona <no-reply@ona.com>
2025-09-02 11:24:03 -04:00
Siddhant Khare
066087bb09
Cute little message (#21034)
* Cute little message

* nit fix

* trigger ci
2025-09-02 04:48:02 -04:00
Robo Quat
fd1cf4812c
update index (#20957) 2025-08-25 09:52:34 -04:00
Kyle Brennan
8b77edeb8e
[agent-smith] introduce file detector (#21010)
* feat(agent-smith): implement filesystem signature scanning

- Add filesystem scanning capability to detect suspicious files in workspaces
- Scan workspace directories directly from WorkingArea/{InstanceID} paths
- Support filesystem signatures with filename patterns and regex matching
- Add FilesystemScanning configuration with WorkingArea path
- Integrate filesystem detection with existing signature classifier
- Fix regex pattern matching in signature matching logic
- Add comprehensive filesystem scanning tests
- Update example configuration with filesystem signatures

Co-authored-by: Ona <no-reply@ona.com>

* cleanup

* Use a separate func for matching for filesystem signatures

* Fix logging for successful match

* Simplify & no metrics

Co-authored-by: Ona <no-reply@ona.com>

* Don't get fooled by the match

* Revert "Don't get fooled by the match"

This reverts commit 124b7ac47b9a119d15f0a859cd258d8475839fed.

Co-authored-by: Ona <no-reply@ona.com>

* Cleanup

Co-authored-by: Ona <no-reply@ona.com>

* More cleanup

* Renaming and metric removal

* Fix build

---------

Co-authored-by: Ona <no-reply@ona.com>
2025-08-25 08:09:34 -04:00
Siddhant Khare
0d84199cb1
fix(cli): correct environment variable parsing for comma-separated values (#20992) 2025-08-04 08:04:50 -04:00
iQQBot
a736c1b83b
feat: implement CSRF protection for OAuth flows with nonce validation (#20983)
* feat: implement CSRF protection for OAuth flows with nonce validation

- Add NonceService for cryptographically secure nonce generation and validation
- Include nonce in JWT state for OAuth authorization requests
- Store nonce in secure httpOnly cookie with SameSite=strict
- Validate nonce matches between state and cookie in auth callback
- Add origin/referer header validation for additional CSRF protection
- Use timing-safe comparison to prevent timing attacks
- Clear nonce cookie after successful validation or on error

This prevents CSRF attacks where malicious sites could initiate OAuth flows
on behalf of users by ensuring authorization requests originate from Gitpod.

Co-authored-by: Ona <no-reply@ona.com>

* refactor: consolidate fragment protection and fix context provider conflict

Co-authored-by: Ona <no-reply@ona.com>

* fix: handle GitHub OAuth api subdomain edge case with secure redirect

Co-authored-by: Ona <no-reply@ona.com>

* fix: simplify api subdomain redirect test to avoid dependency injection complexity

Replace complex Authenticator dependency injection test with simple unit test
that focuses on the core logic without requiring all service dependencies.

This makes the test more reliable and easier to maintain while still validating
the critical api subdomain detection logic for the GitHub OAuth edge case.

Co-authored-by: Ona <no-reply@ona.com>

* docs: update domain examples to use gitpod.io instead of preview domains

Update test examples and documentation to use production-appropriate
domain examples (gitpod.io) instead of specific preview environment
domains for better clarity and maintainability.

Co-authored-by: Ona <no-reply@ona.com>

* fix cookie

Co-authored-by: Ona <no-reply@ona.com>

* Update authenticator.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update authenticator.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* minor stuff

* cleanup old redirect logic

* cleanup

* 1

Co-authored-by: Ona <no-reply@ona.com>

* feat: add feature flags for nonce validation and strict authorize returnTo

Add two feature flags to control security features with safe defaults:

**Feature Flag 1: enable_nonce_validation (default: false)**
- Controls CSRF nonce validation in OAuth flows
- When disabled: Nonce is generated but not validated (future compatibility)
- When enabled: Full CSRF protection with nonce and origin validation
- Nonce cookies are always generated and cleared for consistency

**Feature Flag 2: enable_strict_authorize_return_to (default: false)**
- Controls returnTo validation strictness for /api/authorize endpoint
- When disabled: Falls back to login validation (broader patterns)
- When enabled: Uses strict authorize validation (limited to specific paths)
- /api/login always uses login validation regardless of flag

**Implementation Details:**
- Always generate nonce for consistency and future compatibility
- Only validate nonce when feature flag is enabled
- Always clear nonce cookies regardless of validation state
- Authorize endpoint checks flag and falls back gracefully
- Comprehensive logging for debugging and monitoring

**Backward Compatibility:**
- Default false ensures no breaking changes
- Gradual rollout possible via feature flag configuration
- Existing authentication flows continue to work
- Safe fallback behavior when flags are disabled

Co-authored-by: Ona <no-reply@ona.com>

* fix: validate OAuth callback origin against SCM provider domain

Update NonceService.validateOrigin to check request origin against the
expected SCM provider domain instead of Gitpod's own domain. This fixes
the CSRF protection logic for OAuth callbacks which legitimately come
from external providers (github.com, gitlab.com, etc.).

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 1

* remove the origin check logic

* update sorry url

* move files

* use safeRedirect for redirect

* 1

* [server] minor refactor/renames

* moah changes

---------

Co-authored-by: Ona <no-reply@ona.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Gero Posmyk-Leinemann <gero@gitpod.io>
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-01 06:20:47 -04:00
Gero Posmyk-Leinemann
9b7dd9f5c7
[dev] Use "ping" in redis-cli, which is compatible with newer versions (#20989)
* [dev] Use "-ping" in redis-cli, which is compatible with newer versions

* Fix ping invocation

Co-authored-by: iQQBot <tianshi8650@gmail.com>

---------

Co-authored-by: iQQBot <tianshi8650@gmail.com>
2025-08-01 05:52:47 -04:00
Robo Quat
0ace0a96fe
[VS Code Browser] Build stable code 1.102.3 (#20973)
* [VS Code Browser] Build stable code `1.102.3`

* Upgrade to node 22

* Update codeCommit

---------

Co-authored-by: mustard <huiwen@gitpod.io>
2025-07-31 16:06:46 -04:00
Gero Posmyk-Leinemann
266d6536e5
[server] Implement context env var validation behind context_env_var_validation ff (#20968)
Co-authored-by: Ona <no-reply@ona.com>
2025-07-24 02:23:35 -04:00
iQQBot
7137b3a8ba
[proxy] add security headers (#20970)
Co-authored-by: Ona <no-reply@ona.com>
2025-07-23 07:44:34 -04:00
iQQBot
6b9ed2c573
fix: prevent XSS in returnToPath parameter by validating protocol (#20965)
The returnToPath parameter validation was vulnerable to XSS attacks using
javascript: protocol URLs with matching hostnames (e.g., javascript://gitpod.io/).
This fix ensures only HTTPS URLs with matching hostnames are trusted.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-22 07:29:34 -04:00
Mirco Kater
c3d5051d5e
Update AppNotifications.tsx (#20963) 2025-07-21 07:47:32 -04:00
Robo Quat
1960e8ebef
update index (#20922) 2025-07-09 23:01:21 -04:00
iQQBot
830d9c91b0
[server] tolerate deleted users for listWorkspaceSessions (#20943)
Co-authored-by: Kyle Brennan <kyle@gitpod.io>
2025-07-09 02:03:21 -04:00
iQQBot
b0df8ecb69
[image-builder-bob] update buildkit alpine to 3.22 (#20942) 2025-07-08 10:30:20 -04:00
mustard
e93eb6cc8c
[server] Fix mismatch collation issue in workspace instance metrics query (#20933) 2025-07-01 06:07:13 -04:00
Robo Quat
25a0a64070
[VS Code Browser] Build stable code 1.101.1 (#20920)
* [VS Code Browser] Build stable code `1.101.1`

* Update agent

* 1

* Update build agent

* Disable signature verification

---------

Co-authored-by: mustard <huiwen@gitpod.io>
Co-authored-by: Huiwen <mhqnwt@gmail.com>
2025-06-25 05:06:07 -04:00
Gero Posmyk-Leinemann
236cab0a7d
[db] Fix collation mismatch between 5.7/8.0.xx for d_b_org_env_var and d_b_workspace_instance_metrics (#20916) 2025-06-23 03:04:05 -04:00
Robo Quat
d91dfe0482
update index (#20906) 2025-06-20 00:16:02 -04:00
Gero Posmyk-Leinemann
c5a55dd02a
[claude/cline] See if it works to integrate memory-bank into Claude Code (#20913)
* [cline] Fix memory-bank rules

* [claude] Integrate with memory-bank (attempt)
2025-06-19 11:41:02 -04:00
Siddhant Khare
a0cf09dabb
Redesign login page with Ona banner & Banners in Workspace start pages (#20909)
* Add Ona banner to start page with compact and full versions

* Login page -  Ona right panel for waitlist sign-up and information for gitpod.io users only

* only send email what user submitted

* Refactor login component to use installation configuration for enterprise detection and update learn more button to a link

* improve login page

* Update Ona banner links to point to Gitpod solutions and add dismiss functionality

* improve login page

* nice keyB

* addressing review nit

* Refactor OnaBanner and AppNotifications components for improved layout and dismiss functionality

* Update OnaBanner positioning logic and adjust text alignment for improved layout

* minor improvements
2025-06-19 09:53:02 -04:00
Siddhant Khare
2946c9a0aa
Add Ona banner notification (#20908)
* Add Ona banner notification with gradient background

- Replace Gitpod Classic sunset message with Ona introduction
- Add Ona wordmark SVG import and display
- Apply gradient background for Ona banner
- Set white text color and underlined link to https://ona.com/
- Link styling with hover effect (underline disappears on hover)

* nit fix
2025-06-17 08:21:00 -04:00
mustard
a0a2dc6f99
Improve JetBrains port processing performance (#20907)
* Improve JetBrains port processing performance

Add throttling mechanism to prevent rapid successive port updates, reducing UI flicker and improving performance in the JetBrains backend plugin.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* revert sdkman path

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-17 04:44:00 -04:00
Robo Quat
79b857aa31
update index (#20863) 2025-06-16 03:42:59 -04:00
Gero Posmyk-Leinemann
3b1f9888f4
[registry facade] Don't retry requests with error messages that were successful (#20889) 2025-06-09 16:16:37 -04:00
Siddhant Khare
5091a5e6d4
Ona banner in Gitpod classic (#20882)
* Add Ona banner component and track waitlist joined event

* Add success toast notification for Ona banner waitlist click
2025-06-09 03:15:36 -04:00
Gero Posmyk-Leinemann
abfbb95bd2
[supervisor] Drop feature flag supervisor_terminal_no_deadline_exceeded (#20869) 2025-06-06 10:01:14 -04:00
Gero Posmyk-Leinemann
28be3429bb
[registry-facade] Properly retry fetching mainfests/config as well (#20880) 2025-06-06 08:30:13 -04:00
Gero Posmyk-Leinemann
6428470ac3
[registry-facade] Do retry if copying a blob fails mid way (#20879) 2025-06-06 05:22:13 -04:00
Gero Posmyk-Leinemann
c568be5978
[image-builder] Introduce retry for all resolver requests (timeout 15s, up to 3 times) for all network-related issues (#20868)
* [image-builder] Fix generate.sh

* [image-builder-api] Add use_retry_client to ResolveBaseImageRequest and BuildRequest

* [image-builder] Use req.GetUseRetryClient() instead of feature flag resolved on startup

[image-builder] Drop superfluous imports

[image-builder] Switch to github.com/hashicorp/go-retryablehttp, incl. better unit tests at orchestrator level!

* [server] Pass "useRetryClient" on all requests to image-builder
2025-06-05 11:30:13 -04:00
mustard
8cdc2a1a45
[JetBrains] Make backend-plugin compatible with 2025.2 (#20871)
* Update Platform Version of JetBrains Backend Plugin (EAP) to

* 1

* Fix

* Add test cases back

* Fix stable build

* Fix build

* Fix rider latest build

---------

Co-authored-by: Robo Quat <roboquat@gitpod.io>
2025-06-04 12:21:12 -04:00