Commit Graph

1014 Commits

Author SHA1 Message Date
Pujit Mehrotra 6c048bf550 feat: container update actions 2025-11-17 15:14:31 -05:00
Pujit Mehrotra 1033e76576 fix: add background style reset, apply to button:hover as well 2025-11-17 15:14:31 -05:00
Pujit Mehrotra cbbb45e05f feat: bulk toggle auto-start 2025-11-17 15:14:29 -05:00
Pujit Mehrotra 73daa881e1 feat: container start & stop order 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 1258e7e353 refactor: optimistic column toggle 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 4abbcfc194 fix: optimistic column toggle update 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 687d0bd110 add a flag to opt out of version check in super.shouldApply in file mods 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 9c96c02697 feat: save column visibility preferences across visits 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 994b252e17 fix: move update to a badge + popover 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 7120c197c5 fix: column visibility toggle 2025-11-17 15:14:15 -05:00
Pujit Mehrotra b04ba4498e feat: implement manage settings action 2025-11-17 15:14:15 -05:00
Pujit Mehrotra b9c99ba74e feat: navigate to container update page 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 15509ca342 flatten css scopes 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 4b680e94ee Revert "fix: css"
This reverts commit 234c2e2c6518e39f5dcceec1c97400c69dc53140.
2025-11-17 15:14:15 -05:00
Pujit Mehrotra fd57e789db fix: css 2025-11-17 15:14:15 -05:00
Pujit Mehrotra 58c16f9cea fix: notifications type check 2025-11-17 15:14:14 -05:00
Pujit Mehrotra 7f57489996 fix: nuxt ui portal styling 2025-11-17 15:14:14 -05:00
Pujit Mehrotra c2f1cd9489 tmp: critical notifications system 2025-11-17 15:14:14 -05:00
Pujit Mehrotra 31dd8dd5d4 feat: critical notifications 2025-11-17 15:14:14 -05:00
Pujit Mehrotra 0224ba578e feat: filtering & bulk actions in compact mode 2025-11-17 15:14:14 -05:00
Pujit Mehrotra bacee666f1 fix: context menu 2025-11-17 15:14:14 -05:00
Pujit Mehrotra 946f51eb01 fix: search filtering 2025-11-17 15:14:14 -05:00
Pujit Mehrotra d156aa13f1 chore: fix formatting 2025-11-17 15:14:14 -05:00
Pujit Mehrotra abc7fc50cb fix: container state badge 2025-11-17 15:14:14 -05:00
Pujit Mehrotra fbefaa115e feat: icon support 2025-11-17 15:12:39 -05:00
Pujit Mehrotra ae213e9ebd fix: rm extra Root layer in table 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 1d59e54f94 refactor!: rm intermediate tree resolution of organizers
BREAKING CHANGE: ResolvedOrganizerView -> root is replaced by rootId +
flatEntries.

`root` resolved a tree representation of an organizer, but this required
clients to defined and use their own tree operations, thus increasing
client complexity.

Instead, `flatEntries` is more suitable for client operations and only
requires an initial mapping step on the client for efficiency.
2025-11-17 15:12:39 -05:00
Pujit Mehrotra fd802ea2d8 refactor: simplify organizer operations 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 11ee93cae0 refactor: extract composables 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 9e3d7e865d track active container in query param 2025-11-17 15:12:39 -05:00
Pujit Mehrotra ca2579216f click overview row to open details 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 855e4656ec add bottom padding to container to make it easier to drag items to bottom in sidebar 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 45a21bb223 right click to reame & delete folders 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 48ae1c1320 add drag and drop for re-ordering containers & folders 2025-11-17 15:12:39 -05:00
Pujit Mehrotra 6f7bddce4c use compacted table as sidebar tree 2025-11-17 15:12:39 -05:00
Pujit Mehrotra a551859f0d docker container management prototype 2025-11-17 15:12:37 -05:00
Pujit Mehrotra 97373c14b1 implement column visibility customization 2025-11-17 15:12:22 -05:00
Pujit Mehrotra 693f4913f6 implement pause / resume 2025-11-17 15:12:22 -05:00
Pujit Mehrotra 10f07e9b19 implement 'start / stop' bulk & row actions 2025-11-17 15:12:22 -05:00
Pujit Mehrotra 0a99f9c202 implement 'move to folder' 2025-11-17 15:12:22 -05:00
Pujit Mehrotra 0681a4e34c fix context menu trigger area and dropdown styles 2025-11-17 15:12:22 -05:00
Pujit Mehrotra 23fdeea251 table > select & status badge 2025-11-17 15:12:20 -05:00
Eli Bosley 66625ded6a New Crowdin updates (#1786)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Expanded localization support with comprehensive validation error
messages across 22 languages including Arabic, Chinese, French, German,
Hindi, Japanese, Portuguese, Russian, Spanish, and others.
* Enhanced form validation messaging for API key management, OIDC
provider configuration, SSO setup, and related settings to provide
localized guidance for users fixing errors.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:04:10 -05:00
Eli Bosley f8a6785e9c fix: re-add missing header gradient styles (#1787)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Style**
* Enhanced header banner styling: centered, non-repeating cover images
with layered gradient overlays and adjusted user-profile banner
positioning for improved layout.
* **Bug Fixes**
* Banner display logic updated so "image" is treated like "yes" for
showing banner images.
* **Tests**
  * Added unit tests covering banner/theme display behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:03:37 -05:00
Eli Bosley 854b403fbd feat: use persisted theme css to fix flashes on header (#1784)
## Summary
- install the pinia-plugin-persistedstate integration directly inside
the theme store and hydrate cached themes before applying CSS variables
- fall back to the active/global Pinia instance while ensuring persisted
state is only wired once per store instance
- update the theme store tests to reset the shared Pinia state between
runs and rely on the plugin-backed persistence

## Testing
- pnpm --filter web test __test__/store/theme.test.ts

------
[Codex
Task](https://chatgpt.com/codex/tasks/task_e_69156c5e8de48323841f7dbfdadec51d)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Theme preferences now persist across sessions and are restored on
return.
* **Behavior Change**
* Theme switching may now update the URL/address bar to reflect the
selected theme.
* **Chores**
* Added a persistence integration to enable storing/restoring theme
data.
* **Tests**
* Updated/added tests covering hydration from storage and persistence of
server-provided themes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 16:24:30 -05:00
Eli Bosley 45cda4af80 chore: nunjucks template engine for test pages (#1783) 2025-11-13 11:35:43 -05:00
Eli Bosley d56797c59f chore: add dev mode language selection (#1782)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a language switcher widget to all test pages for convenient
locale selection.
* Displays supported language options in a dropdown menu with extensive
multi-language support.
  * Persists user's locale preference across page reloads.

* **Tests**
* Enhanced test utilities with improved multi-locale support and locale
switching capabilities.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 10:49:36 -05:00
Pujit Mehrotra 11d2de5d08 chore(web): reduce lint duration by 90% (#1766)
Replace the eslint prettier plugin (which profiling revealed to be the
bottleneck) with separate `prettier` invocations. This yielded a 73 second reduction (89%) in the environment described below.

Before:
```
pnpm --filter web lint:fix  81.79s user 1.85s system 110% cpu 1:15.81 total
```
After: 
```
pnpm --filter web lint:fix  8.83s user 0.93s system 170% cpu 5.737 total
```
System specs (Nov 5 2025):
```
OS: macOS Sequoia 15.6.1 (24G90) arm64
Host: MacBook Air (15-inch, M2, 2023)
Kernel: Darwin 24.6.0
Uptime: 44 days, 5 hours, 22 mins
Packages: 52 (nix-default), 195 (brew), 4 (brew-cask)
Shell: zsh 5.9
CPU: Apple M2 (8) @ 3.50 GHz
GPU: Apple M2 (10) @ 1.40 GHz [Integrated]
Memory: 19.51 GiB / 24.00 GiB (81%)
Swap: 4.83 GiB / 6.00 GiB (80%)
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Separated code formatting and linting tools into independent workflows
for improved developer efficiency
* Updated development tool configuration to streamline the linting and
formatting process

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-06 09:22:45 -05:00
Eli Bosley 031c1ab5dc New Crowdin updates (#1760)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Localization**
  * Added proper Arabic translation for server action status messages
  * Added proper French translation for server action status messages
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-01 07:34:39 -04:00
Pujit Mehrotra 34075e44c5 fix: flaky watch on boot drive's dynamix config (#1753)
On FAT32, `fs.stat()` updates accesstime, which means file reads are
also writes, which means we can't use `usePoll` without degrading users'
flash drives.

To keep file reads lazy without a larger refactor, I override
`getters.dynamix()` as the entrypoint to re-read the boot drive's
dynamix config.

Consecutive calls to `getters.dynamix()` are a common access pattern,
which means we have to memoize to avoid many redundant file reads, so I
used a TTL cache with a 250ms lifetime, hoping to scope config files to
each request.

`getters.dynamix()` is also used synchonously, so bit the bullet and
switched away from async reads for simplicity, considering that most
reads will be occurring from memory, even during cache misses.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added a TTL memoized loader utility with exported types.
  * Added a public function to load Dynamix configuration at startup.

* **Refactor**
* Startup now uses the deterministic, cached config loader; runtime
file-watch for Dynamix config removed.
* Simplified config state handling and load-status reporting for more
predictable startup behavior.

* **Tests**
* Added tests for TTL caching, eviction, keying, and conditional
caching.

* **Chores**
  * Bumped package versions and updated changelog.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-27 11:05:13 -04:00