From f9a50877039013cd3a3f00c2e6bc69b8a2a520ff Mon Sep 17 00:00:00 2001 From: Gallay Lajos Date: Mon, 13 Jul 2026 13:50:46 +0200 Subject: [PATCH 1/3] perf: service startup performance --- service/src/service.ts | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/service/src/service.ts b/service/src/service.ts index c23c1e2..d239e02 100644 --- a/service/src/service.ts +++ b/service/src/service.ts @@ -29,6 +29,16 @@ import { encryptExistingSecrets } from './utils/encrypt-existing-secrets.js' const host = getHost() const port = getPort() +const logStartupError = (scope: string, error: unknown): void => { + getLogger(injector) + .withScope(scope) + .error({ + message: `Background startup task failed: ${error instanceof Error ? error.message : String(error)}`, + data: { error }, + }) + .catch(() => console.error(`Background startup task failed (logger unavailable) [${scope}]`, error)) +} + const setupRestApis = async () => { await setupDataStore(injector) await setupLogStore(injector) @@ -36,21 +46,26 @@ const setupRestApis = async () => { injector.get(ExternalGitChangeListener).start() + // Stale-state cleanup and secret re-encryption don't gate REST availability โ€” run them + // in the background so HTTP can start accepting requests sooner. const processManager = injector.get(ProcessManager) - await processManager.reconcileStaleStates() + void processManager.reconcileStaleStates().catch((error) => logStartupError('StaleStateReconciler', error)) - await usingAsync(useSystemIdentityContext({ injector }), async (elevated) => { + void usingAsync(useSystemIdentityContext({ injector }), async (elevated) => { await encryptExistingSecrets(elevated) - }) + }).catch((error) => logStartupError('EncryptExistingSecrets', error)) - await setupInstallRestApi(injector) - await setupIdentityRestApi(injector) - await setupStacksRestApi(injector) - await setupServicesRestApi(injector) - await setupGitHubReposRestApi(injector) - await setupPrerequisitesRestApi(injector) - await setupTokensRestApi(injector) - await setupSystemRestApi(injector) + // Each module registers its own route group independently, so they can be set up concurrently. + await Promise.all([ + setupInstallRestApi(injector), + setupIdentityRestApi(injector), + setupStacksRestApi(injector), + setupServicesRestApi(injector), + setupGitHubReposRestApi(injector), + setupPrerequisitesRestApi(injector), + setupTokensRestApi(injector), + setupSystemRestApi(injector), + ]) const wsService = injector.get(WebsocketService) await wsService.init(injector) From 6f411ef595df955f5925b1f7d991242241699599 Mon Sep 17 00:00:00 2001 From: Gallay Lajos Date: Mon, 13 Jul 2026 13:52:10 +0200 Subject: [PATCH 2/3] versioning, changelogs --- .yarn/changelogs/service.38497d1d.md | 48 ++++++++++++++++++++++++ .yarn/changelogs/stack-craft.38497d1d.md | 48 ++++++++++++++++++++++++ .yarn/versions/38497d1d.yml | 3 ++ 3 files changed, 99 insertions(+) create mode 100644 .yarn/changelogs/service.38497d1d.md create mode 100644 .yarn/changelogs/stack-craft.38497d1d.md create mode 100644 .yarn/versions/38497d1d.yml diff --git a/.yarn/changelogs/service.38497d1d.md b/.yarn/changelogs/service.38497d1d.md new file mode 100644 index 0000000..0946a88 --- /dev/null +++ b/.yarn/changelogs/service.38497d1d.md @@ -0,0 +1,48 @@ + +# service + + + +## โœจ Features + + +## ๐Ÿ› Bug Fixes + + +## ๐Ÿ“š Documentation + + +## โšก Performance + - Improved service startup performance with parallel REST API initialization and deferred stale process detection + +## โ™ป๏ธ Refactoring + + +## ๐Ÿงช Tests + + +## ๐Ÿ“ฆ Build + + +## ๐Ÿ‘ท CI + + +## โฌ†๏ธ Dependencies + + +## ๐Ÿ”ง Chores + diff --git a/.yarn/changelogs/stack-craft.38497d1d.md b/.yarn/changelogs/stack-craft.38497d1d.md new file mode 100644 index 0000000..b2ae06f --- /dev/null +++ b/.yarn/changelogs/stack-craft.38497d1d.md @@ -0,0 +1,48 @@ + +# stack-craft + + + +## โœจ Features + + +## ๐Ÿ› Bug Fixes + + +## ๐Ÿ“š Documentation + + +## โšก Performance + + +## โ™ป๏ธ Refactoring + + +## ๐Ÿงช Tests + + +## ๐Ÿ“ฆ Build + + +## ๐Ÿ‘ท CI + + +## โฌ†๏ธ Dependencies + + +## ๐Ÿ”ง Chores + diff --git a/.yarn/versions/38497d1d.yml b/.yarn/versions/38497d1d.yml new file mode 100644 index 0000000..3d28169 --- /dev/null +++ b/.yarn/versions/38497d1d.yml @@ -0,0 +1,3 @@ +releases: + service: patch + stack-craft: patch From 8c85daf0caa74381851ec36e69324d4b3c85eb4a Mon Sep 17 00:00:00 2001 From: Gallay Lajos Date: Mon, 13 Jul 2026 13:58:15 +0200 Subject: [PATCH 3/3] adjusted versions and changelogs --- .yarn/changelogs/stack-craft.38497d1d.md | 48 ------------------------ .yarn/versions/38497d1d.yml | 4 +- 2 files changed, 3 insertions(+), 49 deletions(-) delete mode 100644 .yarn/changelogs/stack-craft.38497d1d.md diff --git a/.yarn/changelogs/stack-craft.38497d1d.md b/.yarn/changelogs/stack-craft.38497d1d.md deleted file mode 100644 index b2ae06f..0000000 --- a/.yarn/changelogs/stack-craft.38497d1d.md +++ /dev/null @@ -1,48 +0,0 @@ - -# stack-craft - - - -## โœจ Features - - -## ๐Ÿ› Bug Fixes - - -## ๐Ÿ“š Documentation - - -## โšก Performance - - -## โ™ป๏ธ Refactoring - - -## ๐Ÿงช Tests - - -## ๐Ÿ“ฆ Build - - -## ๐Ÿ‘ท CI - - -## โฌ†๏ธ Dependencies - - -## ๐Ÿ”ง Chores - diff --git a/.yarn/versions/38497d1d.yml b/.yarn/versions/38497d1d.yml index 3d28169..16da3cb 100644 --- a/.yarn/versions/38497d1d.yml +++ b/.yarn/versions/38497d1d.yml @@ -1,3 +1,5 @@ releases: service: patch - stack-craft: patch + +declined: + - stack-craft