agentbox-app 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -16
- package/bin/agentbox.mjs +18 -9
- package/briefs/message-rules.md +15 -4
- package/main/account-tooling.mjs +2 -1
- package/main/acp.mjs +296 -0
- package/main/agent-homes.mjs +158 -0
- package/main/agent-sessions.mjs +57 -20
- package/main/agent-updates.mjs +9 -20
- package/main/analytics.mjs +30 -0
- package/main/approvals.mjs +14 -5
- package/main/claude-bin.mjs +45 -310
- package/main/claude-input.mjs +9 -3
- package/main/claude-launch-env.mjs +54 -0
- package/main/claude-models.mjs +39 -7
- package/main/claude-plan.mjs +14 -2
- package/main/claude-usage.mjs +82 -25
- package/main/codex-bin.mjs +51 -248
- package/main/codex-launch-env.mjs +31 -0
- package/main/codex-session.mjs +38 -3
- package/main/codex-threads.mjs +41 -8
- package/main/codex-watch.mjs +67 -3
- package/main/config.mjs +40 -13
- package/main/corner-tag.mjs +489 -0
- package/main/crash-report.mjs +26 -3
- package/main/demo.mjs +17 -14
- package/main/engine-bin.mjs +595 -0
- package/main/engine-setup.mjs +27 -27
- package/main/feedback.mjs +11 -6
- package/main/fresh-user.mjs +1 -1
- package/main/git-change.mjs +8 -2
- package/main/harnesses/claude-stream.mjs +208 -0
- package/main/harnesses/claude.mjs +84 -0
- package/main/harnesses/codex.mjs +65 -0
- package/main/harnesses/common.mjs +78 -0
- package/main/harnesses/instructions-file.mjs +116 -0
- package/main/harnesses/opencode.mjs +234 -0
- package/main/harnesses.mjs +65 -0
- package/main/importable-threads.mjs +38 -0
- package/main/instruction-settings.mjs +47 -11
- package/main/ipc.mjs +175 -22
- package/main/local-app-frames.mjs +82 -0
- package/main/machine.mjs +1 -1
- package/main/main.mjs +120 -5
- package/main/memory-gate-history.mjs +51 -12
- package/main/memory-gate-server.mjs +67 -11
- package/main/memory-gate.mjs +49 -8
- package/main/memory-log.mjs +124 -0
- package/main/notify.mjs +48 -5
- package/main/opencode-server.mjs +271 -0
- package/main/opencode.mjs +287 -0
- package/main/phone-link.mjs +551 -0
- package/main/refresh-agent-models.mjs +2 -1
- package/main/relay-address.mjs +28 -0
- package/main/relay-client.mjs +246 -0
- package/main/row-label.mjs +8 -7
- package/main/runs-on.mjs +90 -0
- package/main/serve.mjs +124 -10
- package/main/settings.mjs +171 -11
- package/main/shell-path.mjs +86 -0
- package/main/ship-queue.mjs +25 -7
- package/main/sign-in-files.mjs +3 -7
- package/main/source-updater.mjs +27 -1
- package/main/start-hold.mjs +73 -0
- package/main/store/home.mjs +37 -5
- package/main/store/project.mjs +15 -19
- package/main/store.mjs +10 -4
- package/main/supervisor.mjs +1030 -447
- package/main/task-commands.mjs +13 -17
- package/main/task-folders-offthread.mjs +6 -1
- package/main/task-folders.mjs +491 -82
- package/main/task-terminals.mjs +49 -8
- package/main/team/index.mjs +2 -2
- package/main/team/projects.mjs +1 -1
- package/main/updater.mjs +71 -9
- package/main/worktree-include.mjs +494 -0
- package/mcp/core/page.mjs +1 -1
- package/mcp/core/work.mjs +34 -3
- package/mcp/tools.mjs +2 -1
- package/package.json +10 -1
- package/renderer/dist/assets/abnfDiagram-YUKMZFIV-DPPuMWt-.js +1 -0
- package/renderer/dist/assets/arc-HmFfdseH.js +1 -0
- package/renderer/dist/assets/architectureDiagram-47P4ROYG-DxJ3zHrH.js +36 -0
- package/renderer/dist/assets/blockDiagram-E7TT5TSB-CbTXzOqQ.js +140 -0
- package/renderer/dist/assets/c4Diagram-CRA5TL53-X5ItFyLn.js +38 -0
- package/renderer/dist/assets/channel-BlT2g9Sz.js +1 -0
- package/renderer/dist/assets/chunk-2Q5K7J3B-DC12Ho_L.js +1 -0
- package/renderer/dist/assets/chunk-5VM5RSS4-ClVtfPd0.js +15 -0
- package/renderer/dist/assets/chunk-7TKQ45FW-DgcOm0HT.js +1 -0
- package/renderer/dist/assets/chunk-AW2ZBBNX-C01s4yoF.js +88 -0
- package/renderer/dist/assets/chunk-FVRAUYC3-Bj0zxhR4.js +2 -0
- package/renderer/dist/assets/chunk-HTAEGDNF-DWDeEhLU.js +1 -0
- package/renderer/dist/assets/chunk-JWPE2WC7-Dsqwv3eW.js +1 -0
- package/renderer/dist/assets/chunk-KQW6MTUR-CE86ANL2.js +1 -0
- package/renderer/dist/assets/chunk-XXDRQBXY-CoNTASfs.js +1 -0
- package/renderer/dist/assets/classDiagram-v2-K4WV4PDN-2wprLqtw.js +217 -0
- package/renderer/dist/assets/cornerTag-BLrxiDE5.css +1 -0
- package/renderer/dist/assets/cornerTag-BOT6u3Tn.js +1 -0
- package/renderer/dist/assets/cose-bilkent-JH36ORCC-enqMiYbn.js +1 -0
- package/renderer/dist/assets/cynefin-EF2NZ3EQ-DHngLxvQ.js +141 -0
- package/renderer/dist/assets/cynefinDiagram-3GCD6N5R-C0rZZIl3.js +62 -0
- package/renderer/dist/assets/cytoscape.esm-C5JX3QLV.js +331 -0
- package/renderer/dist/assets/dagre-W4DXFKR2-DQnaEWO7.js +4 -0
- package/renderer/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/renderer/dist/assets/diagram-2UJZ2QOL-CS8AlGPx.js +200 -0
- package/renderer/dist/assets/diagram-OVF4WLC6-yiDMHIkY.js +24 -0
- package/renderer/dist/assets/diagram-PFPMY2P6-XbQKzbBA.js +30 -0
- package/renderer/dist/assets/diagram-UMYRVEAY-dhVvlfl_.js +24 -0
- package/renderer/dist/assets/diagram-YEKJPTXX-DZHe8SCf.js +41 -0
- package/renderer/dist/assets/diagram-ZIFT7M5P-B5h6aXVR.js +3 -0
- package/renderer/dist/assets/ebnfDiagram-VR2GEFS7-PR9ScDco.js +1 -0
- package/renderer/dist/assets/elk-IJKZMXRS-Cg-yQXPd.js +27 -0
- package/renderer/dist/assets/erDiagram-O2IAPWRE-omOrJMxu.js +99 -0
- package/renderer/dist/assets/flowDiagram-OXPTDLAJ-aOX2hzvT.js +213 -0
- package/renderer/dist/assets/ganttDiagram-R7TSEDQI-B1H3pWyI.js +292 -0
- package/renderer/dist/assets/gitGraphDiagram-XJZIOB7I-Cvw304HC.js +106 -0
- package/renderer/dist/assets/graph-DGbsTEsI.js +1 -0
- package/renderer/dist/assets/infoDiagram-5W2HQ5XZ-_ZXcNViH.js +2 -0
- package/renderer/dist/assets/init-Gi6I4Gst.js +1 -0
- package/renderer/dist/assets/ishikawaDiagram-K3B6WC7H-C7Mx_qQk.js +70 -0
- package/renderer/dist/assets/journeyDiagram-COXZFDF6-fr62QoAt.js +139 -0
- package/renderer/dist/assets/kanban-definition-P3RFRI5V-J8zsabCe.js +89 -0
- package/renderer/dist/assets/katex-C5jXJg4s.js +257 -0
- package/renderer/dist/assets/linear-BmNdEtIi.js +1 -0
- package/renderer/dist/assets/main-ChNdnUvt.js +1132 -0
- package/renderer/dist/assets/main-nj0QR5kg.css +32 -0
- package/renderer/dist/assets/mermaid.core-CnYzvFkz.js +314 -0
- package/renderer/dist/assets/mindmap-definition-LZFPQGKD-Bfcxc7PM.js +96 -0
- package/renderer/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/renderer/dist/assets/pegDiagram-BGZESJAR-CwUJOq6X.js +1 -0
- package/renderer/dist/assets/pieDiagram-CAPJLFHJ-BrwMmqfC.js +39 -0
- package/renderer/dist/assets/product-name-CTKLYNWY.js +40 -0
- package/renderer/dist/assets/quadrantDiagram-GDMTTRAM-BN4Stoj-.js +7 -0
- package/renderer/dist/assets/railroadDiagram-SM67HX2B-CPZ5bbeR.js +1 -0
- package/renderer/dist/assets/requirementDiagram-X7JNWC4A-CgRnimVe.js +84 -0
- package/renderer/dist/assets/sankeyDiagram-UM26HJRW-Bt2rej__.js +40 -0
- package/renderer/dist/assets/sequenceDiagram-ZO4K6R2Y-Dd5nKe9G.js +169 -0
- package/renderer/dist/assets/sizeCapture-INFHLROL-usyNyXyh.js +1 -0
- package/renderer/dist/assets/stateDiagram-v2-TBUQTH76-CRzUBb0u.js +291 -0
- package/renderer/dist/assets/swimlanes-N4OXWK64-C1GJvMS0.js +1 -0
- package/renderer/dist/assets/swimlanesDiagram-K3J5GTZL-Cy4Av2_p.js +8 -0
- package/renderer/dist/assets/timeline-definition-YOQAKGHF-caeyPlcc.js +120 -0
- package/renderer/dist/assets/usecaseDiagram-VIAY4XPW-BN_SV6PC.js +370 -0
- package/renderer/dist/assets/vennDiagram-BLWOH2XV-BLGuaUX-.js +34 -0
- package/renderer/dist/assets/wardleyDiagram-YMQ3BMBF-Da0cJeNc.js +78 -0
- package/renderer/dist/assets/xychartDiagram-TAQBALBS-cGfUffMk.js +7 -0
- package/renderer/dist/corner-tag.html +13 -0
- package/renderer/dist/emulator/audio-rules.mjs +74 -0
- package/renderer/dist/emulator/data/compression/README.md +11 -0
- package/renderer/dist/emulator/data/compression/extract7z.js +1 -0
- package/renderer/dist/emulator/data/compression/extractzip.js +1 -0
- package/renderer/dist/emulator/data/compression/libunrar.js +519 -0
- package/renderer/dist/emulator/data/compression/libunrar.wasm +0 -0
- package/renderer/dist/emulator/data/cores/README.md +22 -0
- package/renderer/dist/emulator/data/cores/mgba-legacy-wasm.data +0 -0
- package/renderer/dist/emulator/data/cores/mgba-thread-legacy-wasm.data +0 -0
- package/renderer/dist/emulator/data/cores/mgba-thread-wasm.data +0 -0
- package/renderer/dist/emulator/data/cores/mgba-wasm.data +0 -0
- package/renderer/dist/emulator/data/cores/package.json +65 -0
- package/renderer/dist/emulator/data/cores/reports/mgba.json +1 -0
- package/renderer/dist/emulator/data/emulator.css +1614 -0
- package/renderer/dist/emulator/data/loader.js +170 -0
- package/renderer/dist/emulator/data/localization/README.md +63 -0
- package/renderer/dist/emulator/data/localization/af-FR.json +339 -0
- package/renderer/dist/emulator/data/localization/ar-AR.json +301 -0
- package/renderer/dist/emulator/data/localization/ben-BEN.json +301 -0
- package/renderer/dist/emulator/data/localization/de-GER.json +301 -0
- package/renderer/dist/emulator/data/localization/el-GR.json +301 -0
- package/renderer/dist/emulator/data/localization/en-US.json +339 -0
- package/renderer/dist/emulator/data/localization/es-ES.json +310 -0
- package/renderer/dist/emulator/data/localization/fa-AF.json +310 -0
- package/renderer/dist/emulator/data/localization/hi-HI.json +301 -0
- package/renderer/dist/emulator/data/localization/it-IT.json +302 -0
- package/renderer/dist/emulator/data/localization/ja-JA.json +301 -0
- package/renderer/dist/emulator/data/localization/jv-JV.json +301 -0
- package/renderer/dist/emulator/data/localization/ko-KO.json +336 -0
- package/renderer/dist/emulator/data/localization/pt-BR.json +361 -0
- package/renderer/dist/emulator/data/localization/retroarch.json +617 -0
- package/renderer/dist/emulator/data/localization/ro-RO.json +310 -0
- package/renderer/dist/emulator/data/localization/ru-RU.json +301 -0
- package/renderer/dist/emulator/data/localization/tr-TR.json +310 -0
- package/renderer/dist/emulator/data/localization/vi-VN.json +302 -0
- package/renderer/dist/emulator/data/localization/zh-CN.json +351 -0
- package/renderer/dist/emulator/data/src/GameManager.js +464 -0
- package/renderer/dist/emulator/data/src/compression.js +142 -0
- package/renderer/dist/emulator/data/src/emulator.js +6158 -0
- package/renderer/dist/emulator/data/src/gamepad.js +167 -0
- package/renderer/dist/emulator/data/src/nipplejs.js +1 -0
- package/renderer/dist/emulator/data/src/shaders.js +236 -0
- package/renderer/dist/emulator/data/src/socket.io.min.js +7 -0
- package/renderer/dist/emulator/data/src/storage.js +125 -0
- package/renderer/dist/emulator/data/version.json +5 -0
- package/renderer/dist/emulator/host.js +297 -0
- package/renderer/dist/emulator/index.html +28 -0
- package/renderer/dist/emulator/provenance.json +6 -0
- package/renderer/dist/index.html +16 -3
- package/scripts/after-install.mjs +14 -0
- package/scripts/approval-server.sh +31 -7
- package/scripts/before-publish.mjs +12 -10
- package/shared/agent-import.mjs +3 -1
- package/shared/agents.d.mts +1 -0
- package/shared/bridge-map.mjs +19 -0
- package/shared/claude-commands.generated.mjs +8 -6
- package/shared/claude-models.generated.mjs +10 -8
- package/shared/codex-modes.mjs +1 -1
- package/shared/corner-tag.d.mts +14 -0
- package/shared/corner-tag.mjs +141 -0
- package/shared/demo-world.mjs +1 -1
- package/shared/engines.mjs +20 -5
- package/shared/fresh-user-home.mjs +12 -1
- package/shared/harness-definitions.mjs +103 -0
- package/shared/instruction-defaults.json +1 -1
- package/shared/notify-rules.d.mts +25 -0
- package/shared/notify-rules.mjs +19 -0
- package/shared/project-folder-check.mjs +3 -3
- package/shared/provider-commands.mjs +10 -2
- package/shared/rank.d.mts +2 -0
- package/shared/rank.mjs +50 -0
- package/shared/relay-address.mjs +6 -0
- package/shared/relay-crypto.mjs +165 -0
- package/shared/runs-on.d.mts +10 -0
- package/shared/runs-on.mjs +55 -0
- package/shared/shortcuts.mjs +11 -5
- package/shared/spawn-trouble.mjs +58 -7
- package/shared/terminal-input.d.mts +1 -0
- package/shared/terminal-input.mjs +30 -0
- package/shared/terminal-keys.d.mts +1 -0
- package/shared/terminal-keys.mjs +16 -0
- package/shared/terminal-size.d.mts +4 -0
- package/shared/terminal-size.mjs +29 -0
- package/shared/usage.d.mts +3 -0
- package/shared/usage.mjs +7 -0
- package/shared/where-it-runs-from.d.mts +43 -0
- package/shared/where-it-runs-from.mjs +155 -0
- package/shared/work-items.mjs +28 -2
- package/shared/work-lines.mjs +1 -1
- package/shared/xterm-invalid-range.d.mts +2 -0
- package/shared/xterm-invalid-range.mjs +58 -0
- package/renderer/dist/assets/index-B-2Az952.css +0 -32
- package/renderer/dist/assets/index-D6qncgai.js +0 -1168
package/main/store/home.mjs
CHANGED
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
// and repeat rules all sat in it.
|
|
16
16
|
//
|
|
17
17
|
// So this is the same convention, one name over: a dot-folder in her home
|
|
18
|
-
// named after this app.
|
|
18
|
+
// named after this app. On Linux a fresh install does not get that dot-folder,
|
|
19
|
+
// and it does not get a visible folder of the app's name in $HOME. Application
|
|
20
|
+
// data belongs in $XDG_DATA_HOME (see defaultStoreRoot). An existing dot-folder
|
|
21
|
+
// is still read, so a store already on disk is not orphaned.
|
|
19
22
|
//
|
|
20
23
|
// WHAT MOVES AND WHAT DOES NOT, because the line is not "everything of ours".
|
|
21
24
|
// The app's own RECORDS move: the work item ledger, session traces, run
|
|
@@ -37,7 +40,7 @@ import fs from 'node:fs';
|
|
|
37
40
|
import os from 'node:os';
|
|
38
41
|
import path from 'node:path';
|
|
39
42
|
import crypto from 'node:crypto';
|
|
40
|
-
import { WAS, envNames, nameSlug, readEnv } from '../../shared/product-name.mjs';
|
|
43
|
+
import { Name, WAS, envNames, nameSlug, readEnv } from '../../shared/product-name.mjs';
|
|
41
44
|
|
|
42
45
|
const isDir = (dir) => { try { return fs.statSync(dir).isDirectory(); } catch { return false; } };
|
|
43
46
|
|
|
@@ -61,6 +64,25 @@ export function storeRootEnv(storeRoot) {
|
|
|
61
64
|
return env;
|
|
62
65
|
}
|
|
63
66
|
|
|
67
|
+
// Where a config that names no store keeps the inbox.
|
|
68
|
+
//
|
|
69
|
+
// macOS, and anything that is not Linux: a folder of the app's name in the
|
|
70
|
+
// home directory. That is the folder this app has used since 2026-09-22.
|
|
71
|
+
// Linux: $XDG_DATA_HOME/<slug>, or ~/.local/share/<slug> when the variable is
|
|
72
|
+
// unset, blank, or not an absolute path. A visible directory in $HOME is not
|
|
73
|
+
// where an application writes. Measured 2026-10-07: a config that named no
|
|
74
|
+
// store created one.
|
|
75
|
+
//
|
|
76
|
+
// The home and the environment are arguments so a test can ask about another
|
|
77
|
+
// machine. A caller that passes a stand-in home must pass an environment that
|
|
78
|
+
// belongs to it. This function does not decide that; it uses the env it is given.
|
|
79
|
+
export function defaultStoreRoot({ home = os.homedir(), platform = process.platform, env = process.env } = {}) {
|
|
80
|
+
if (platform !== 'linux') return path.join(home, Name);
|
|
81
|
+
const given = typeof env?.XDG_DATA_HOME === 'string' ? env.XDG_DATA_HOME.trim() : '';
|
|
82
|
+
const base = given && path.isAbsolute(given) ? given : path.join(home, '.local', 'share');
|
|
83
|
+
return path.join(base, nameSlug);
|
|
84
|
+
}
|
|
85
|
+
|
|
64
86
|
// One env var, for tests and for anyone who keeps their home somewhere else.
|
|
65
87
|
// Read at call time rather than captured, because a test sets it per case.
|
|
66
88
|
//
|
|
@@ -74,9 +96,10 @@ export function storeRootEnv(storeRoot) {
|
|
|
74
96
|
// store goes missing on the release that renames the app.
|
|
75
97
|
// `homeDir` is injected so a test can ask what this answers on a machine with
|
|
76
98
|
// an old dot-folder on it, without one having to exist on the machine running
|
|
77
|
-
// the test.
|
|
78
|
-
|
|
79
|
-
|
|
99
|
+
// the test. `platform` and `env` are the same kind of injection: this suite
|
|
100
|
+
// runs on a Mac and still has to answer a Linux home. Production passes neither.
|
|
101
|
+
export function appHome(homeDir = os.homedir(), { platform = process.platform, env } = {}) {
|
|
102
|
+
const override = readEnv('HOME', env);
|
|
80
103
|
if (override) return override;
|
|
81
104
|
const here = path.join(homeDir, `.${nameSlug}`);
|
|
82
105
|
if (isDir(here)) return here;
|
|
@@ -84,6 +107,15 @@ export function appHome(homeDir = os.homedir()) {
|
|
|
84
107
|
const older = path.join(homeDir, `.${was.toLowerCase()}`);
|
|
85
108
|
if (isDir(older)) return older;
|
|
86
109
|
}
|
|
110
|
+
// A fresh Linux directory has nothing of ours on disk yet. The answer has to
|
|
111
|
+
// be the same path loadConfig opens, or the desktop and this lookup write two
|
|
112
|
+
// stores. The machine's own XDG_DATA_HOME is an absolute path in the real
|
|
113
|
+
// home; applying it to a stand-in home writes that stand-in's store there.
|
|
114
|
+
// A caller that passes `env` is asking about that environment, not this one.
|
|
115
|
+
if (platform === 'linux') {
|
|
116
|
+
const real = env === undefined && path.resolve(homeDir) === path.resolve(os.homedir());
|
|
117
|
+
return defaultStoreRoot({ home: homeDir, platform: 'linux', env: real ? process.env : (env ?? {}) });
|
|
118
|
+
}
|
|
87
119
|
return here;
|
|
88
120
|
}
|
|
89
121
|
|
package/main/store/project.mjs
CHANGED
|
@@ -4,34 +4,30 @@
|
|
|
4
4
|
|
|
5
5
|
import fs from 'node:fs';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import os from 'node:os';
|
|
8
7
|
import crypto from 'node:crypto';
|
|
9
8
|
import { SCHEMA_VERSION, validateCreation, creationText, TEXT_CREATION_KINDS } from '../../shared/contracts.mjs';
|
|
10
9
|
import { assertInside, assertCreationDir, deniesGitOrEnvPath } from './paths.mjs';
|
|
11
10
|
import { migrateIndex } from './migrate.mjs';
|
|
12
11
|
import { withProjectLockSync } from './project-lock.mjs';
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
12
|
+
import { readEnv } from '../../shared/product-name.mjs';
|
|
13
|
+
import { defaultStoreRoot } from './home.mjs';
|
|
14
|
+
|
|
15
|
+
// The machine-wide root: the store-home variable, else the same default
|
|
16
|
+
// loadConfig uses when a config names no store. This is where device-local
|
|
17
|
+
// files live (settings.json, ui-state.json, usage.json, .runtime-pids, ...)
|
|
18
|
+
// and where a founder's PRE-account projects sit until they are migrated into
|
|
19
|
+
// an account space. It is NEVER account-scoped: those files stay global
|
|
20
|
+
// (Phase 1).
|
|
20
21
|
//
|
|
21
|
-
// THE FALLBACK IS
|
|
22
|
-
//
|
|
22
|
+
// THE FALLBACK IS defaultStoreRoot. On macOS that is a folder of the app's
|
|
23
|
+
// name. On Linux it is the XDG data directory. A visible folder in $HOME was
|
|
24
|
+
// the fallback until 2026-10-07, and a config that named no store created one.
|
|
23
25
|
//
|
|
24
|
-
// NOTHING WAS DELETED AND NOTHING MOVED. That folder is still on disk exactly
|
|
25
|
-
// as it was. What changed is that this app stops reaching for it by default.
|
|
26
26
|
// Her live store is named in zero.config.json and handed to every worker as
|
|
27
|
-
// the app's own home variable, so this line
|
|
28
|
-
//
|
|
29
|
-
// the answer for an install carrying no config at all.
|
|
30
|
-
//
|
|
31
|
-
// An older product's HOME env var used to sit between these two. It is gone:
|
|
32
|
-
// nothing sets it any more now that the store server carries the app's own name.
|
|
27
|
+
// the app's own home variable, so this line is only ever the answer for an
|
|
28
|
+
// install carrying no config and no store-home variable.
|
|
33
29
|
export function legacyRoot() {
|
|
34
|
-
return readEnv('HOME') ||
|
|
30
|
+
return readEnv('HOME') || defaultStoreRoot();
|
|
35
31
|
}
|
|
36
32
|
|
|
37
33
|
// The account currently signed in, if any. Set once at boot and re-resolved on
|
package/main/store.mjs
CHANGED
|
@@ -471,10 +471,7 @@ export class Store {
|
|
|
471
471
|
// app restart, a reboot, and a store restored onto another machine, and so no
|
|
472
472
|
// agent line can quietly move a time she set. 0 clears it.
|
|
473
473
|
//
|
|
474
|
-
//
|
|
475
|
-
// out of the inbox and scheduling her own work to start at six. They were
|
|
476
|
-
// separate mechanisms before, and only the first existed: the old snooze was
|
|
477
|
-
// a renderer localStorage map that hid a row and deferred no work at all.
|
|
474
|
+
// Execution scheduling only. Inbox reminders use snoozeItem instead.
|
|
478
475
|
scheduleItem(slug, id, runAt) {
|
|
479
476
|
const { workItemsDisk } = this.modules;
|
|
480
477
|
return workItemsDisk.updateWorkItem(
|
|
@@ -482,6 +479,15 @@ export class Store {
|
|
|
482
479
|
);
|
|
483
480
|
}
|
|
484
481
|
|
|
482
|
+
// Put the existing thread back in the person's inbox later. This never
|
|
483
|
+
// changes its execution schedule, answer, status, claim or delivery marks.
|
|
484
|
+
snoozeItem(slug, id, snoozedUntil) {
|
|
485
|
+
if (!Number.isFinite(snoozedUntil)) throw new Error('Later needs a valid time');
|
|
486
|
+
return this.modules.workItemsDisk.updateWorkItem(
|
|
487
|
+
this.productDir(slug), id, { snoozedUntil: Math.max(0, Math.trunc(snoozedUntil)) }, { source: 'founder' },
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
|
|
485
491
|
// WHO A SHARED ROW IS WITH, changed by a person: handed to an agent, kept,
|
|
486
492
|
// handed back, or passed on by a reply. Only the team fields, on the
|
|
487
493
|
// person's own authority, so an agent writing afterwards cannot undo it.
|