Skip to content

Separate single-bucket entity from accounts and unify add flow#1

Closed
imggion wants to merge 2 commits intomainfrom
codex/add-single-bucket-management-feature-2026-02-23
Closed

Separate single-bucket entity from accounts and unify add flow#1
imggion wants to merge 2 commits intomainfrom
codex/add-single-bucket-management-feature-2026-02-23

Conversation

@imggion
Copy link
Copy Markdown
Owner

@imggion imggion commented Feb 23, 2026

Motivation

  • Single-bucket entries are a different domain from full accounts and should be persisted and modeled separately to avoid mixing concerns.
  • The add/connection UX should present a single entry point where the user picks whether to create an Account or a Single Bucket before entering credentials.

Description

  • Introduced a dedicated type and DAO for single-bucket entries: SingleBucketConfig and SingleBucketDao, and added a Flyway migration V2__add_single_bucket_support.sql to create the single_buckets table.
  • Restored AccountConfig/AccountDao to be account-only and removed the previous singleBucketName field from the account persistence model.
  • Replaced the two separate add dialogs with a single AccountDialog that has an EntryType selector (ACCOUNT / SINGLE_BUCKET) and returns a ConnectionInput; deleted the old SingleBucketDialog.
  • Updated MainWindow to handle two distinct flows (persist/load/connect/delete) for AccountConfig vs SingleBucketConfig, to create sessions for single-bucket entries, and to normalize/validate inputs with new helpers (normalizeSingleBucket, toSessionAccountConfig, validateConnectionInput).
  • Updated the sidebar to represent single-bucket entries as leaf nodes (no expand/collapse) and added addSingleBucket / updateSingleBucket methods and an AccountNode variant that carries a singleBucket flag and bucketName.
  • Small UI/menu changes to expose a single empty-area action Add Connection and to disable the Create bucket action for single-bucket entries via AccountContextMenu.

Testing

  • Ran ./gradlew test which failed in this environment because publishing.gradle expects the giteaToken property and the build evaluation aborts.
  • Ran ./gradlew test -PgiteaToken=dummy which failed during dependency resolution due to HTTP 403 from Maven Central in this environment so compilation/tests could not complete.
  • Ran ./gradlew compileJava -PgiteaToken=dummy --offline which failed because no dependency cache is available offline, so compilation could not be validated locally.

Codex Task

@imggion imggion closed this Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant