fix: resolve dev panel and CLI regressions

Synchronize scheduler concurrency across API and gRPC processes and restore persisted limits during recovery.

Serialize subscription mutations and preserve shared storage while cleaning Shell and CLI namespaces, historical references, and filesystem-specific naming candidates.

Handle CLI text responses correctly and include script history in backups. Add regression coverage for concurrency, cleanup ownership, long URLs, Unicode paths, and history exports.
This commit is contained in:
whyour
2026-10-07 12:35:10 +08:00
parent fa8910b3d6
commit 24f7d1a46f
22 changed files with 1595 additions and 57 deletions
@@ -219,7 +219,7 @@ test('startup retains historical aliases and isolates bad rows and asynchronous
test('subscription create and update preserve branch aliases without rewriting records', async (t) => {
const root = temporary(t);
const Subscription = load(path.resolve('back/services/subscription.ts'), {
'../config': { logPath: root },
'../config': { logPath: root, scriptPath: root },
'../data/subscription': {
Subscription: class {
constructor(value) {
@@ -429,7 +429,7 @@ function cancellationFixture(t, subscriptions) {
'../data/subscription': {
SubscriptionModel: {
findAll: async ({ where }) =>
docs.filter((doc) => where.id.includes(doc.id)),
docs.filter((doc) => !where.id || where.id.includes(doc.id)),
destroy: async ({ where }) => events.push(['destroy', where.id]),
update: async (value, { where }) => {
for (const doc of docs) {