projects: file explorer, ws improvements, i18n, and fs routing
Nightly Build / build (push) Successful in 6m47s

Add project-files component with tree navigation. Extend UserFs with
shared-folder resolution. Wire API routes for file browsing. Improve
WS session lifecycle and project-board layout. Add i18n keys for
projects and inbox across all locales.
This commit is contained in:
2026-07-22 18:35:13 +01:00
parent 8407a949fc
commit f34f800e5c
16 changed files with 733 additions and 40 deletions
+7 -1
View File
@@ -20,6 +20,10 @@ export class AgentInboxPage extends I18nMixin(InboxMixin(LightElement)) {
connectedCallback() {
super.connectedCallback();
// Live refresh: the chat WS pushes `inbox-changed` when any of this user's
// sessions raises or settles a pending item — reload immediately if open.
this.__onInboxChanged = () => { if (this._open) this._loadInbox(); };
window.addEventListener('inbox-changed', this.__onInboxChanged);
window.addEventListener('llm-page-change', (e) => {
this._open = e.detail.page === 'inbox';
this.style.display = this._open ? 'flex' : 'none';
@@ -35,11 +39,13 @@ export class AgentInboxPage extends I18nMixin(InboxMixin(LightElement)) {
disconnectedCallback() {
super.disconnectedCallback();
this._stopPolling();
window.removeEventListener('inbox-changed', this.__onInboxChanged);
}
_startPolling() {
this._stopPolling();
this._pollTimer = setInterval(() => this._loadInbox(), 8000);
// Fallback only — pushes via `inbox-changed` keep the page fresh.
this._pollTimer = setInterval(() => this._loadInbox(), 60000);
}
_stopPolling() {