Skip to content

Revert "chore: Merge upstream 2.54.0"#87

Merged
laurynasgadl merged 1 commit into
masterfrom
revert-86-chore/merge-upstream-2.54.0
Jan 14, 2026
Merged

Revert "chore: Merge upstream 2.54.0"#87
laurynasgadl merged 1 commit into
masterfrom
revert-86-chore/merge-upstream-2.54.0

Conversation

@laurynasgadl
Copy link
Copy Markdown
Member

@laurynasgadl laurynasgadl commented Jan 14, 2026

Reverts #86

Summary by CodeRabbit

Release Notes

  • New Features

    • Added context menu for file operations in the listing view.
    • Enhanced search functionality with improved UI and performance.
  • Improvements

    • Streamlined user profile settings by removing redundant configuration options.
    • Simplified authentication flow and removed password re-entry requirement for user updates.
  • Bug Fixes

    • Improved file listing and sorting behavior.
  • Removed Features

    • CSV file preview support.
    • User setting: redirect after copy/move option.
    • User setting: Ace editor theme selection.
    • Logout page configuration option.
  • Tests

    • Added Playwright end-to-end test suite for authentication and settings.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 14, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR restructures the project with substantial changes across the codebase: replaces legacy build workflows with new CI infrastructure, refactors command handlers to a unified wrapper pattern, simplifies frontend architecture by removing components and consolidating stores, updates backend error handling, reorganizes documentation, and introduces Playwright testing.

Changes

Cohort / File(s) Summary
CI/Build Workflows
.github/workflows/ci.yaml, .github/workflows/docs.yml, .github/workflows/main.yaml, Makefile, common.mk, tools.mk
Deleted old CI workflows; introduced new main.yaml with streamlined lint and test jobs. Restructured Makefile with includes (common.mk, tools.mk) and new targets (clean, bump-version, site, site-serve, help). Added shared build variables and tool management infrastructure.
Build Configuration
.gitignore, .golangci.yml, Dockerfile, Dockerfile.s6, Taskfile.yml, go.mod, renovate.json
Removed Taskfile.yml entirely; added Playwright test result exclusions. Expanded golangci-lint configuration significantly. Updated base Docker images (3.23→3.22). Downgraded Go from 1.25 to 1.24; adjusted numerous dependencies. Removed Renovate config.
Backend Command Handlers (Wrapper Pattern Transition)
cmd/cmds_add.go, cmd/cmds_ls.go, cmd/cmds_rm.go, cmd/config_cat.go, cmd/config_export.go, cmd/config_import.go, cmd/config_set.go, cmd/config_init.go, cmd/rule_rm.go, cmd/rules_add.go, cmd/rules_ls.go, cmd/users_add.go, cmd/users_export.go, cmd/users_find.go, cmd/users_import.go, cmd/users_rm.go, cmd/users_update.go
Critical architectural shift: Replaced withStore(..., storeOptions{}) wrapper with python(..., pythonConfig{}) across all command handlers. Updated internal storage access from st (store) to d.store (pythonData). Changed callback signatures accordingly.
Backend Core Command & Root Config
cmd/root.go, cmd/utils.go, cmd/config.go, cmd/rules.go, cmd/users.go, cmd/docs.go, cmd/upgrade.go
Major refactoring: replaced Viper-based config with flag-driven approach; introduced initConfig and cobra.OnInitialize. Replaced environment/config wiring with direct flag reading. Updated documentation generation flow. Added upgrade command. Removed getSettings function; updated flag parsing to use helper functions (getString, getBool, etc.).
Backend HTTP Package Rename & Handlers
http/auth.go, http/commands.go, http/data.go, http/headers.go, http/headers_dev.go, http/http.go, http/preview.go, http/preview_enum.go, http/public.go, http/public_test.go, http/quota.go, http/raw.go, http/resource.go, http/search.go, http/settings.go, http/share.go, http/static.go, http/subtitle.go, http/tus_handlers.go, http/users.go, http/utils.go
Renamed package from fbhttp to http. Switched JWT v5→v4. Removed CurrentPassword field from modifyRequest. Removed HideLoginButton, AuthMethod, LogoutPage from settings handlers. Updated error alias (fberrors→fbErrors). Simplified search handler (removed streaming, now returns single JSON payload). Removed CalcImgRes field usage.
Backend Files & Image Processing
files/file.go, files/mime.go, img/service.go
Removed CalcImgRes from FileOptions; always compute image resolution. Removed MaxImageWidth/Height and ErrImageTooLarge. Added nolint directives.
Backend Error Handling & Authentication
auth/hook.go, auth/json.go, auth/proxy.go, errors/errors.go
Updated error alias (fberrors→fbErrors) consistently. Added signal-based exit codes (ErrSigTerm, ErrSighup, ErrSigint, ErrSigquit) and GetExitCode function. Removed ErrCurrentPasswordIncorrect. Added nolint directives for lint suppression.
Backend Storage & Modules
settings/settings.go, settings/defaults.go, settings/dir.go, settings/storage.go, storage/bolt/auth.go, storage/bolt/users.go, storage/bolt/utils.go, storage/bolt/share.go, share/storage.go, users/users.go, users/password.go, users/storage.go
Removed HideLoginButton, LogoutPage, RedirectAfterCopyMove, AceEditorTheme from public structs. Updated error aliases (fberrors→fbErrors/errors). Added image resolution init to users/assets.go. Simplified User struct.
Backend Migration Infrastructure
storage/bolt/importer/importer.go, storage/bolt/importer/conf.go, storage/bolt/importer/users.go
New files: Added comprehensive importer module for migrating old Storm DB to new Bolt storage, including user conversion logic and configuration mapping.
Backend Search & Utilities
search/search.go, search/conditions.go, runner/runner.go
Removed context parameter from Search function. Replaced ReplaceAll with Replace calls. Added nolint directives.
Frontend Components Removed
frontend/src/components/ContextMenu.vue, frontend/src/components/files/CsvViewer.vue, frontend/src/components/prompts/CreateFilePath.vue, frontend/src/components/settings/AceEditorTheme.vue
Deleted entire components: ContextMenu, CsvViewer, CreateFilePath, AceEditorTheme. Moved context menu logic to store-driven approach.
Frontend Components (Store-Driven Context Menu)
frontend/src/components/files/ContextMenu.vue, frontend/src/components/files/ListingItem.vue, frontend/src/views/files/FileListing.vue
New: Added ContextMenu.vue with store integration. Updated ListingItem to use contextMenuStore. Removed local context menu state from FileListing; transitioned to store-driven pattern.
Frontend Components (API & Navigation Updates)
frontend/src/components/prompts/Copy.vue, frontend/src/components/prompts/Move.vue, frontend/src/components/prompts/DiscardEditorChanges.vue, frontend/src/components/prompts/Share.vue, frontend/src/components/prompts/NewDir.vue, frontend/src/components/prompts/NewFile.vue, frontend/src/components/prompts/UploadFiles.vue
Removed redirectAfterCopyMove conditional logic; always navigate on success. Removed Save Changes button. Updated Share API calls to top-level functions. Removed CreateFilePath usage. Simplified upload speed calculation.
Frontend Assets & Configuration
frontend/assets.go, frontend/assets_dev.go, frontend/index.html, frontend/public/index.html
Added build-tag gated dev assets (fs.DirFS approach). Removed apple-touch-icon multiline formatting. Removed LogoutPage from window.FileBrowser config.
Frontend Package & Dependencies
frontend/package.json, frontend/playwright.config.ts
Downgraded Node.js (24→22), pnpm (10→9). Updated tsconfig reference. Added Playwright test script and numerous dev dependency adjustments (vite, typescript, vue, etc.). New: Playwright config with chromium/firefox projects and dev server setup.
Frontend TypeScript Configuration
frontend/tsconfig.app.json, frontend/tsconfig.node.json, frontend/tsconfig.tsc.json
Simplified exclude list (removed many component exclusions). Updated Node version (24→22). New: tsconfig.tsc.json for vue-tsc with component exclusions.
Frontend Stores
frontend/src/stores/auth.ts, frontend/src/stores/contextMenu.ts, frontend/src/stores/layout.ts
New: Added contextMenu store with show/hide actions and position state. Removed logoutTimer from auth store. Removed saveAction from prompts.
Frontend Types
frontend/src/types/contextMenu.d.ts, frontend/src/types/layout.d.ts, frontend/src/types/settings.d.ts, frontend/src/types/user.d.ts
New: ContextMenuPosition interface. Removed saveAction from PopupProps. Removed hideLoginButton, authMethod from ISettings. Removed redirectAfterCopyMove, aceEditorTheme from user/settings types.
Frontend API
frontend/src/api/pub.ts, frontend/src/api/search.ts, frontend/src/api/users.ts, frontend/src/api/utils.ts
Added URL encoding in download paths. Simplified search signature (removed AbortSignal, callback). Removed currentPassword parameter. Removed setSafeTimeout utility function.
Frontend Utilities
frontend/src/utils/auth.ts, frontend/src/utils/constants.ts, frontend/src/utils/csv.ts, frontend/src/utils/event.ts, frontend/src/utils/theme.ts
Simplified logout flow (removed reason handling, proxy logout logic). Removed hideLoginButton, logoutPage constants. Removed parseCSV and CsvData. New: eventPosition utility. Removed getEditorTheme function.
Frontend Views & Editors
frontend/src/views/Files.vue, frontend/src/views/Layout.vue, frontend/src/views/Login.vue, frontend/src/views/Share.vue, frontend/src/views/files/Editor.vue, frontend/src/views/files/Preview.vue
Added context menu integration to Layout. Removed CSV view routing. Simplified login error handling (removed password length errors). Removed logout message. Fixed Editor theme selection; removed getEditorTheme. Removed CSV preview support. Updated Share URL construction.
Frontend Settings Views
frontend/src/views/settings/Global.vue, frontend/src/views/settings/Profile.vue, frontend/src/views/settings/User.vue
Removed hideLoginButton UI. Removed redirectAfterCopyMove and aceEditorTheme from Profile. Removed currentPassword handling from User creation/update flows. Simplified authentication logic.
Frontend Styling
frontend/src/css/context-menu.css, frontend/src/css/fonts.css, frontend/src/css/listing.css, frontend/src/css/login.css, frontend/src/css/mdPreview.css, frontend/src/css/styles.css
Removed context-menu.css file; added context menu styles to listing.css. Removed logout-message styling. Reformatted font unicode-ranges. Added scrolling constraints to preview.
Frontend i18n (Language Files Removed)
frontend/src/i18n/bg.json, frontend/src/i18n/hr.json, frontend/src/i18n/lv.json, frontend/src/i18n/lv_LV.json
Removed: Bulgarian, Croatian, Latvian language packs entirely.
Frontend i18n (Consolidated Keys)
frontend/src/i18n/en_GB.json, frontend/src/i18n/es_CO.json, frontend/src/i18n/pt_PT.json, frontend/src/i18n/ru_RU.json, frontend/src/i18n/zh_CN.json
Removed: discardChanges, stopSearch, saveChanges, editAsText, increaseFontSize, decreaseFontSize, aceEditorTheme, hideLoginButton, passwordTooShort, redirectAfterCopyMove, currentPassword, CSV-related keys. Added: noPreview. Simplified translation keys across all locales.
Frontend i18n Index & Config
frontend/src/i18n/index.ts
Added cs (Czech) and nb (Norwegian Bokmål) locale mappings for Day.js.
Frontend Testing Infrastructure
frontend/tests/auth.spec.ts, frontend/tests/settings.spec.ts, frontend/tests-examples/demo-todo-app.spec.ts, frontend/tests/fixtures/auth.ts, frontend/tests/fixtures/settings.ts, frontend/tests/fixtures/toast.ts
New: Comprehensive Playwright test suite with AuthPage, SettingsPage, Toast fixtures. Tests for auth flow, settings changes, and TodoMVC demo.
Documentation
www/docs/authentication.md, www/docs/command-execution.md, www/docs/customization.md, www/docs/troubleshooting.md, www/docs/cli/*
Removed: CLI docs (50+ markdown files), authentication, customization, troubleshooting, command-execution.
Documentation (Consolidated & New)
www/docs/configuration.md, www/docs/index.md, www/docs/installation.md, www/mkdocs.yml
New: configuration.md consolidating branding, icons, auth, commands. Updated mkdocs.yml nav structure; added theme features (navigation.sections, toc.integrate). Removed CLI usage subsection.
Root Configuration & Scripts
README.md, CONTRIBUTING.md, CHANGELOG.md, commitlint.config.js, scripts/bump_version.sh, scripts/commitlint.sh, settings.json, main.go
Updated README banner URL, badges, maintenance notice. Updated CONTRIBUTING for Go embed approach. Replaced CHANGELOG intro. New: commitlint.config.js, bump_version.sh, commitlint.sh. Added settings.json. Updated main.go to use errors.GetExitCode().
Linting & Testing Cleanup
cmd/cmd_test.go, frontend/test-results/.last-run.json
Removed cmd test for environment variable collision checking. Removed test-results artifact.
Tool Infrastructure
tools.mk, tools/tools.go, tools/go.mod, tools/package.json
New: Dedicated tools directory with Makefile infrastructure (tools.mk) for managing goimports, golangci-lint, standard-version, commitlint. Includes Go and JavaScript tool management with pinned versions.

Sequence Diagram(s)

sequenceDiagram
    participant Cobra as Cobra Command
    participant Python as python() Wrapper
    participant PythonData as pythonData
    participant Storage as BoltDB Storage
    participant Handler as Command Handler
    
    Cobra->>Python: Invoke with callback & pythonConfig
    Python->>Python: Resolve DB path from flags
    Python->>Storage: Open BoltDB with dbPerms
    Python->>PythonData: Initialize store field
    Python->>Handler: Call callback(cmd, args, pythonData)
    Handler->>PythonData: Access d.store.Settings/Users/Auth
    Handler->>Storage: Read/Write operations
    Storage-->>Handler: Return data
    Handler-->>Cobra: Return error or nil
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120+ minutes

Rationale: This PR involves substantial, heterogeneous changes across frontend (component removal, store refactoring, API changes, i18n consolidation), backend (command wrapper pattern migration, error handling restructuring, settings simplification), build infrastructure (workflow removal, Makefile restructuring, tools management), and documentation reorganization. The new Python-based command handler pattern represents a core architectural shift affecting 15+ command files. Dense logic changes in migration, auth, and settings layers require careful scrutiny. High file diversity (500+ files) and interdependent refactoring patterns demand comprehensive review.

Possibly related PRs

  • chore: Merge upstream 2.54.0 #86: Directly related refactoring affecting overlapping file groups (CI workflows, HTTP handlers, command wrappers, frontend stores/components, i18n consolidation, and auth patterns), indicating connected architectural changes and shared code-level modifications.
✨ Finishing touches
  • 📝 Generate docstrings


📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4f5c0f5 and 87eb71d.

⛔ Files ignored due to path filters (11)
  • branding/banner.png is excluded by !**/*.png
  • branding/banner.svg is excluded by !**/*.svg
  • branding/icon.png is excluded by !**/*.png
  • branding/icon.svg is excluded by !**/*.svg
  • branding/logo.png is excluded by !**/*.png
  • branding/logo.svg is excluded by !**/*.svg
  • frontend/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • frontend/public/img/logo.svg is excluded by !**/*.svg
  • go.sum is excluded by !**/*.sum
  • tools/go.sum is excluded by !**/*.sum
  • tools/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (211)
  • .github/workflows/ci.yaml
  • .github/workflows/docs.yml
  • .github/workflows/main.yaml
  • .gitignore
  • .golangci.yml
  • CHANGELOG.md
  • CONTRIBUTING.md
  • Dockerfile
  • Dockerfile.s6
  • Makefile
  • README.md
  • Taskfile.yml
  • auth/hook.go
  • auth/json.go
  • auth/proxy.go
  • cmd/cmd_test.go
  • cmd/cmds_add.go
  • cmd/cmds_ls.go
  • cmd/cmds_rm.go
  • cmd/config.go
  • cmd/config_cat.go
  • cmd/config_export.go
  • cmd/config_import.go
  • cmd/config_init.go
  • cmd/config_set.go
  • cmd/docs.go
  • cmd/root.go
  • cmd/rule_rm.go
  • cmd/rules.go
  • cmd/rules_add.go
  • cmd/rules_ls.go
  • cmd/upgrade.go
  • cmd/users.go
  • cmd/users_add.go
  • cmd/users_export.go
  • cmd/users_find.go
  • cmd/users_import.go
  • cmd/users_rm.go
  • cmd/users_update.go
  • cmd/utils.go
  • commitlint.config.js
  • common.mk
  • diskcache/file_cache.go
  • diskcache/file_cache_test.go
  • docker/common/defaults/settings.json
  • errors/errors.go
  • files/file.go
  • files/mime.go
  • frontend/assets.go
  • frontend/assets_dev.go
  • frontend/index.html
  • frontend/package.json
  • frontend/playwright.config.ts
  • frontend/public/index.html
  • frontend/src/api/pub.ts
  • frontend/src/api/search.ts
  • frontend/src/api/users.ts
  • frontend/src/api/utils.ts
  • frontend/src/components/ContextMenu.vue
  • frontend/src/components/Search.vue
  • frontend/src/components/Sidebar.vue
  • frontend/src/components/files/ContextMenu.vue
  • frontend/src/components/files/CsvViewer.vue
  • frontend/src/components/files/ListingItem.vue
  • frontend/src/components/prompts/Copy.vue
  • frontend/src/components/prompts/CreateFilePath.vue
  • frontend/src/components/prompts/DiscardEditorChanges.vue
  • frontend/src/components/prompts/Move.vue
  • frontend/src/components/prompts/NewDir.vue
  • frontend/src/components/prompts/NewFile.vue
  • frontend/src/components/prompts/Share.vue
  • frontend/src/components/prompts/UploadFiles.vue
  • frontend/src/components/settings/AceEditorTheme.vue
  • frontend/src/components/settings/Languages.vue
  • frontend/src/css/context-menu.css
  • frontend/src/css/fonts.css
  • frontend/src/css/listing.css
  • frontend/src/css/login.css
  • frontend/src/css/mdPreview.css
  • frontend/src/css/styles.css
  • frontend/src/i18n/bg.json
  • frontend/src/i18n/en_GB.json
  • frontend/src/i18n/es_CO.json
  • frontend/src/i18n/hr.json
  • frontend/src/i18n/index.ts
  • frontend/src/i18n/lv.json
  • frontend/src/i18n/lv_LV.json
  • frontend/src/i18n/pt_PT.json
  • frontend/src/i18n/ru_RU.json
  • frontend/src/i18n/zh_CN.json
  • frontend/src/stores/auth.ts
  • frontend/src/stores/contextMenu.ts
  • frontend/src/stores/layout.ts
  • frontend/src/types/contextMenu.d.ts
  • frontend/src/types/layout.d.ts
  • frontend/src/types/settings.d.ts
  • frontend/src/types/user.d.ts
  • frontend/src/utils/auth.ts
  • frontend/src/utils/constants.ts
  • frontend/src/utils/csv.ts
  • frontend/src/utils/event.ts
  • frontend/src/utils/theme.ts
  • frontend/src/views/Files.vue
  • frontend/src/views/Layout.vue
  • frontend/src/views/Login.vue
  • frontend/src/views/Share.vue
  • frontend/src/views/files/Editor.vue
  • frontend/src/views/files/FileListing.vue
  • frontend/src/views/files/Preview.vue
  • frontend/src/views/settings/Global.vue
  • frontend/src/views/settings/Profile.vue
  • frontend/src/views/settings/User.vue
  • frontend/test-results/.last-run.json
  • frontend/tests-examples/demo-todo-app.spec.ts
  • frontend/tests/auth.spec.ts
  • frontend/tests/fixtures/auth.ts
  • frontend/tests/fixtures/settings.ts
  • frontend/tests/fixtures/toast.ts
  • frontend/tests/settings.spec.ts
  • frontend/tsconfig.app.json
  • frontend/tsconfig.node.json
  • frontend/tsconfig.tsc.json
  • go.mod
  • http/auth.go
  • http/commands.go
  • http/data.go
  • http/headers.go
  • http/headers_dev.go
  • http/http.go
  • http/preview.go
  • http/preview_enum.go
  • http/public.go
  • http/public_test.go
  • http/quota.go
  • http/raw.go
  • http/resource.go
  • http/search.go
  • http/settings.go
  • http/share.go
  • http/static.go
  • http/subtitle.go
  • http/tus_handlers.go
  • http/users.go
  • http/utils.go
  • img/service.go
  • main.go
  • renovate.json
  • runner/runner.go
  • scripts/bump_version.sh
  • scripts/commitlint.sh
  • search/conditions.go
  • search/search.go
  • settings.json
  • settings/defaults.go
  • settings/dir.go
  • settings/settings.go
  • settings/storage.go
  • share/storage.go
  • storage/bolt/auth.go
  • storage/bolt/importer/conf.go
  • storage/bolt/importer/importer.go
  • storage/bolt/importer/users.go
  • storage/bolt/share.go
  • storage/bolt/users.go
  • storage/bolt/utils.go
  • tools.mk
  • tools/go.mod
  • tools/package.json
  • tools/tools.go
  • users/assets.go
  • users/password.go
  • users/storage.go
  • users/users.go
  • www/docs/authentication.md
  • www/docs/cli/filebrowser-cmds-add.md
  • www/docs/cli/filebrowser-cmds-ls.md
  • www/docs/cli/filebrowser-cmds-rm.md
  • www/docs/cli/filebrowser-cmds.md
  • www/docs/cli/filebrowser-completion-bash.md
  • www/docs/cli/filebrowser-completion-fish.md
  • www/docs/cli/filebrowser-completion-powershell.md
  • www/docs/cli/filebrowser-completion-zsh.md
  • www/docs/cli/filebrowser-completion.md
  • www/docs/cli/filebrowser-config-cat.md
  • www/docs/cli/filebrowser-config-export.md
  • www/docs/cli/filebrowser-config-import.md
  • www/docs/cli/filebrowser-config-init.md
  • www/docs/cli/filebrowser-config-set.md
  • www/docs/cli/filebrowser-config.md
  • www/docs/cli/filebrowser-hash.md
  • www/docs/cli/filebrowser-rules-add.md
  • www/docs/cli/filebrowser-rules-ls.md
  • www/docs/cli/filebrowser-rules-rm.md
  • www/docs/cli/filebrowser-rules.md
  • www/docs/cli/filebrowser-users-add.md
  • www/docs/cli/filebrowser-users-export.md
  • www/docs/cli/filebrowser-users-find.md
  • www/docs/cli/filebrowser-users-import.md
  • www/docs/cli/filebrowser-users-ls.md
  • www/docs/cli/filebrowser-users-rm.md
  • www/docs/cli/filebrowser-users-update.md
  • www/docs/cli/filebrowser-users.md
  • www/docs/cli/filebrowser-version.md
  • www/docs/cli/filebrowser.md
  • www/docs/command-execution.md
  • www/docs/configuration.md
  • www/docs/customization.md
  • www/docs/index.md
  • www/docs/installation.md
  • www/docs/troubleshooting.md
  • www/mkdocs.yml

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@laurynasgadl laurynasgadl merged commit f46412b into master Jan 14, 2026
4 of 5 checks passed
@laurynasgadl laurynasgadl deleted the revert-86-chore/merge-upstream-2.54.0 branch January 14, 2026 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant