olly-molly 0.2.17 ā 0.2.19
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 +1 -1
- package/bin/cli.js +17 -9
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -195,7 +195,7 @@ olly-molly/
|
|
|
195
195
|
|
|
196
196
|
- **Framework**: Next.js 16
|
|
197
197
|
- **UI**: React 19, Tailwind CSS 4
|
|
198
|
-
- **Database**:
|
|
198
|
+
- **Database**: TanStack DB (@tanstack/react-db) with IndexedDB persistence
|
|
199
199
|
- **Drag & Drop**: dnd-kit
|
|
200
200
|
- **AI**: Codex CLI / OpenCode / Claude CLI
|
|
201
201
|
|
package/bin/cli.js
CHANGED
|
@@ -88,6 +88,10 @@ function getLocalVersion() {
|
|
|
88
88
|
|
|
89
89
|
const CUSTOM_PROFILES_DIR = path.join(APP_DIR, 'custom-profiles');
|
|
90
90
|
|
|
91
|
+
function hasProductionBuild() {
|
|
92
|
+
return fs.existsSync(path.join(APP_DIR, '.next', 'BUILD_ID'));
|
|
93
|
+
}
|
|
94
|
+
|
|
91
95
|
function backupUserData() {
|
|
92
96
|
const backupDir = path.join(os.tmpdir(), 'olly-molly-backup');
|
|
93
97
|
fs.mkdirSync(backupDir, { recursive: true });
|
|
@@ -142,6 +146,7 @@ async function main() {
|
|
|
142
146
|
const localVersion = getLocalVersion();
|
|
143
147
|
const npmVersion = await getNpmVersion();
|
|
144
148
|
const prebuiltUrl = getPrebuiltUrl(npmVersion);
|
|
149
|
+
const standaloneServerPath = path.join(APP_DIR, '.next', 'standalone', 'server.js');
|
|
145
150
|
|
|
146
151
|
async function downloadApp() {
|
|
147
152
|
if (prebuiltUrl) {
|
|
@@ -183,8 +188,14 @@ async function main() {
|
|
|
183
188
|
execSync('npm install --omit=dev', { cwd: APP_DIR, stdio: 'inherit' });
|
|
184
189
|
}
|
|
185
190
|
|
|
191
|
+
if (usedPrebuilt && !fs.existsSync(standaloneServerPath)) {
|
|
192
|
+
usedPrebuilt = false;
|
|
193
|
+
needsInstall = true;
|
|
194
|
+
needsBuild = true;
|
|
195
|
+
}
|
|
196
|
+
|
|
186
197
|
// Build
|
|
187
|
-
if (needsBuild || !
|
|
198
|
+
if (needsBuild || !hasProductionBuild()) {
|
|
188
199
|
console.log('\nšØ Building...\n');
|
|
189
200
|
execSync('npm run build', { cwd: APP_DIR, stdio: 'inherit' });
|
|
190
201
|
}
|
|
@@ -204,19 +215,16 @@ async function main() {
|
|
|
204
215
|
|
|
205
216
|
let server;
|
|
206
217
|
if (usedPrebuilt) {
|
|
207
|
-
|
|
208
|
-
if (!fs.existsSync(serverPath)) {
|
|
209
|
-
throw new Error('Prebuilt bundle missing .next/standalone/server.js');
|
|
210
|
-
}
|
|
211
|
-
server = spawn('node', [serverPath], {
|
|
218
|
+
server = spawn('node', [standaloneServerPath], {
|
|
212
219
|
cwd: APP_DIR,
|
|
213
220
|
stdio: 'inherit',
|
|
214
221
|
env: { ...process.env, PORT: '1234' },
|
|
215
|
-
shell:
|
|
222
|
+
shell: false
|
|
216
223
|
});
|
|
217
224
|
} else {
|
|
218
|
-
|
|
219
|
-
|
|
225
|
+
const npxCmd = process.platform === 'win32' ? 'npx.cmd' : 'npx';
|
|
226
|
+
server = spawn(npxCmd, ['next', 'start', '--port', '1234'], {
|
|
227
|
+
cwd: APP_DIR, stdio: 'inherit', shell: false
|
|
220
228
|
});
|
|
221
229
|
}
|
|
222
230
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olly-molly",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.19",
|
|
4
4
|
"description": "Your AI Development Team, Running Locally - Manage AI agents (PM, Frontend, Backend, QA) from a beautiful kanban board",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
"@dnd-kit/sortable": "^10.0.0",
|
|
39
39
|
"@dnd-kit/utilities": "^3.2.2",
|
|
40
40
|
"@tailwindcss/postcss": "^4",
|
|
41
|
-
"
|
|
41
|
+
"@tanstack/db": "^0.5.20",
|
|
42
|
+
"@tanstack/react-db": "^0.1.64",
|
|
43
|
+
"idb": "^8.0.0",
|
|
42
44
|
"next": "16.1.1",
|
|
43
45
|
"react": "19.2.3",
|
|
44
46
|
"react-dom": "19.2.3",
|
|
@@ -49,7 +51,6 @@
|
|
|
49
51
|
"uuid": "^13.0.0"
|
|
50
52
|
},
|
|
51
53
|
"devDependencies": {
|
|
52
|
-
"@types/better-sqlite3": "^7.6.13",
|
|
53
54
|
"@types/node": "20.19.29",
|
|
54
55
|
"@types/react": "^19",
|
|
55
56
|
"@types/react-dom": "^19",
|