Commit Graph
4247 Commits
Author SHA1 Message Date
KernelDeimos bfffdfdc36 doc(extensions): exports not front-and-center
The extension documentation mentions imports and exports together very
early on, but extension exports should be used sparingly. I suspect most
extensions with exports will be among Puter's builtin extensions.
2025-10-01 16:47:56 -04:00
KernelDeimos 9946d2ffc5 dev(extensions): event for extensions to grant permst 2025-10-01 16:46:59 -04:00
KernelDeimos 574088ea55 doc: improve extension documentation
- describe extension events
- link drivers documentation
2025-10-01 16:03:24 -04:00
KernelDeimos ec8111cc2f dev(extensions): improved configuration support
Extensions now read configuration objects under the "extensions" block
in the backend configuration. Additionally, a `config.json` for default
values directly in the extension's directory is now supported.
2025-10-01 15:29:13 -04:00
Yukirin 94c0490f34 Update id.js (#1638)
Added missing translations and re-translated some of existing translations
2025-10-01 10:46:43 -07:00
KernelDeimos 887536b811 fix: cleanup EngPortalService commands
- removes commands from EngPortalService that were previously moved to
  ParameterService
- renames `eng:test` to `eng:list-operations`

Closes #1624
2025-10-01 13:17:04 -04:00
Daniel Salazar 5b3bc9ddf4 fix: permission batch get (#1637)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-30 20:17:01 -07:00
biranzegelman97andNariman Jelveh 916f419e0f added missing hebrew translations + fixed some existing translation + changed he.js export variable from en to he (#1634)
* added missing hebrew translations + fixed some existing translation + changed he.js export variable from en to he

* remove "Missing translations" comment?

---------

Co-authored-by: Nariman Jelveh <nj@puter.com>
2025-09-30 19:16:35 -07:00
Hariz 62f5cc54cf Fix bug with context menu positioning on page load (#1636)
* Fix bug with context menu positioning on page load

* Fix double context menu bug on mobile
2025-09-30 18:58:54 -07:00
Nariman Jelveh 6ee60f9c13 Closes #629 2025-09-30 18:27:33 -07:00
HarizandNariman Jelveh 6429dcf15e Add 'Set as Desktop Background' context menu item to images (#1635)
* Add 'Set as Desktop Background' context menu item

* Use the `mime` library to detect images in the `UIItem` context menu

---------

Co-authored-by: Nariman Jelveh <nj@puter.com>
2025-09-30 18:06:09 -07:00
KernelDeimos c11a4008ee doc: improve comments in hellodriver.js
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-30 17:12:09 -04:00
KernelDeimos 5cc182653e doc: document creating extensions through drivers 2025-09-30 16:33:34 -04:00
KernelDeimos 057eaa46ca dev(extensions): [+] hellodriver
The hellodriver extension provides a useful interface for generating
greetings at the same time as a simple example of how to implement
drivers.
2025-09-30 16:33:34 -04:00
KernelDeimos 87f2fbf36b clean: DriverService
Removes dead code and reduces branching. In the get_service_or_throw_
method, the changes in this commit show how the branching got more
redundnat in the previous change.
2025-09-30 16:33:34 -04:00
KernelDeimos 41820baba6 dev: add extension support in DriverService
Adds new events that DriverService emits: `create.interfaces` and
`create.drivers`. Returns the functionality of the "drivers" registry,
which now expects objects provided by extensions.
2025-09-30 16:33:30 -04:00
Nariman Jelveh eaa31ba18f Update copyright headers that were translated to non-english 2025-09-30 12:54:00 -07:00
Nariman Jelveh 343f042f39 feat: add tar and untar functionality for file management
- Implemented `tarItems` function to create tar archives from selected files or directories.
- Added `untarItem` function to extract tar archives.
- Updated UI to include options for downloading and tarring files.
- Enhanced item icon handling to display tar file icons.
- Added translations for tar and untar operations.

- Fixes #1629
2025-09-30 10:35:55 -07:00
Daniel Salazar 9c47a7f8ca perf: move user-user perm checks to flat kv entries (#1562)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-29 19:41:39 -07:00
Nariman Jelveh d085568674 Delete .github/ISSUE_TEMPLATE directory 2025-09-29 18:48:35 -07:00
KernelDeimos 1c64cb274b fix(ai): try overriding timeout to disable error
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
The Anthropic SDK preemptively throws an error if it thinks a response
is going to take longer than 10 minutes:
https://github.com/anthropics/anthropic-sdk-typescript#long-requests

According to this documentation, overriding the `timeout` option
disables this error. In this commit the option is changed to the default
value of 10 minutes plus an additional 1 second; it is assumed based on
the documentation's phrasing that it is not necessary to make the
timeout higher but simply to specify a value.
2025-09-29 15:08:23 -04:00
KernelDeimos df6fc8a432 test: fix test kernel after adding runtimle modules
RuntimeModules (a feature for extensions) can be accessed by core
modules through a registry exposed in Context by Kernel. However,
TestKernel was not exposing this same registry which caused an error
when module installation occurred during tests.
2025-09-29 14:27:07 -04:00
jelveh 208d25f371 Update ClaudeService.js 2025-09-29 11:20:34 -07:00
Andrei Onelandaskmanu[bot] <192355599+askmanu[bot]@users.noreply.github.com> d216887fa0 doc: add comments under filesystem, modules, entitystorage
* Added reference documentation for: src/backend/src/modules/puterfs/DatabaseFSEntryFetcher.js

* Added reference documentation for: src/backend/src/modules/dns/DNSService.js

* Added reference documentation for: src/backend/src/filesystem/ll_operations/ll_write.js

* Added reference documentation for: src/backend/src/filesystem/strategies/storage_a/LocalDiskStorageStrategy.js

* Added reference documentation for: src/backend/src/om/entitystorage/WriteByOwnerOnlyES.js

---------

Co-authored-by: askmanu[bot] <192355599+askmanu[bot]@users.noreply.github.com>
2025-09-29 14:16:50 -04:00
jelveh 5caf148ae9 Update ClaudeService.js 2025-09-29 11:16:13 -07:00
jelveh 847b3a07a4 Improve item.add cache invalidation logic so that it doesn't purge the entire cache
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-29 00:02:03 -07:00
jelveh a69072b31b More precise cache invalidation in case of item rename
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-28 23:43:36 -07:00
jelveh fe022cff1d Back to native purge to build from first principles?! 2025-09-28 22:50:55 -07:00
jelveh 1195e319a8 update kv.js version in package.json 2025-09-28 22:05:30 -07:00
Nariman Jelveh ebb0162d79 Increase cache efficiency 2025-09-28 21:30:31 -07:00
Nariman Jelveh 7382264648 more nuanced cache invalidation strategy with logging enabled by default 2025-09-28 20:35:51 -07:00
Nariman Jelveh a965df0cc0 Remove cache expiry in puter.js 2025-09-28 19:16:29 -07:00
Nariman Jelveh 72341c78dc Update index.js 2025-09-28 18:59:44 -07:00
jelveh ef74a1a660 fix: prevent unnecessary updates on socket events
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
Updated the `bindSocketEvents` method to check the `original_client_socket_id` before posting updates for 'cache.updated' and 'item.renamed' events. This prevents unnecessary updates when the event originates from the same client socket.
2025-09-28 14:35:45 -07:00
jelveh f1fd372933 refactor: improve metadata handling in WSPushService
Updated the `WSPushService` to pass additional metadata during user timestamp updates and event emissions for file system operations. This includes modifications to the `_on_fs_create`, `_on_fs_update`, `_on_fs_move`, and `_on_fs_pending` methods to ensure metadata is consistently included, improving the context for GUI updates.
2025-09-28 13:43:08 -07:00
jelveh 740089aff1 fixes #1622
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-27 00:03:49 -07:00
Xiaochen Cui 891093fd2b fix a typo (#1627)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-26 21:45:00 -07:00
Haitamandjelveh 733c7b638d feat: Complete missing Ukrainian, Turkish and Thai translations (#1616)
* feat: Complete missing Ukrainian, Turkish and Thai translations

* add the trailing comma

---------

Co-authored-by: jelveh <nj@puter.com>
2025-09-26 21:40:20 -07:00
KernelDeimos baf261c0c4 fix: check if shraed files exist in ll_readshares
This may have been breaking the ability to see directories shared by
other users sometimes.
2025-09-26 18:59:23 -04:00
KernelDeimos 088ff4d696 fix: update path when renaming during save_account
We do update the path of all child directories by calling
filesystem.update_child_paths(), but this was never done for the user's
actual home directory itself (only everything under it).

The most ideal solution would be to delegate this behavior to the move
operation instead of updating the fsentries table directly, but making
this change right now has a high risk of breaking changes since this the
behavior in this file is very old.
2025-09-26 18:44:32 -04:00
Nariman Jelveh fae33301a8 fix the issue with last_valid_ts always being 0 2025-09-26 15:05:44 -07:00
mrtbgauandNariman Jelveh b8263fd8e0 feat: add missing Persian and Finnish translations (#1614)
* feat: add missing Persian translations

* feat: add missing Finnish translations

* Remove "Missing translations" comment

---------

Co-authored-by: Nariman Jelveh <nj@puter.com>
2025-09-26 15:05:04 -07:00
KernelDeimos d85f5fad5e dev: expose 'kv' as 'cache' from data extension
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test (20.x) (push) Has been cancelled
test / test (22.x) (push) Has been cancelled
test / api-test (22.x) (push) Has been cancelled
2025-09-26 17:31:00 -04:00
KernelDeimos d5a2a34f53 dev(extensions): add extension.use
The extension.use method allows registering routers and generic handlers
(not wrapped by eggspress) to express.
2025-09-26 17:30:09 -04:00
KernelDeimos 601eb019a2 dev(extensions): [+] data
The data extension adds convenient access to the database and kvstore
via it's 'db' and 'kv' exports.

Example usage:
  const { db, kv } = extensions.import('data');
  await kv.set('some-key', 'some-value');
  await db.write('INSERT INTO something (a, b) VALUES (1, 2)');
2025-09-26 15:28:00 -04:00
KernelDeimos 63bf4eccbe dev: make services importable by extensions
For example you can access WebServerService with
extension.import('service:web')
2025-09-26 15:28:00 -04:00
KernelDeimos 0c30a9e157 fixup! dev(extensions): [+] whoami 2025-09-26 15:28:00 -04:00
KernelDeimos dabf8cac56 fix: add missing dep to whoami extension 2025-09-26 15:28:00 -04:00
KernelDeimos 570409ef15 doc: add more extension internals documentation 2025-09-26 15:28:00 -04:00
KernelDeimos 27d7668a72 dev: '@extension name' and priority in puter.json
Adds the '@extension name <name>' directive for single-file Puter
extensions, and adds support for defining priority in 'puter.json'.
2025-09-26 15:27:59 -04:00