tycono 0.1.94-beta.5 → 0.1.94-beta.7
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/package.json +1 -1
- package/src/api/src/engine/context-assembler.ts +7 -1
- package/src/api/src/routes/sessions.ts +2 -0
- package/src/api/src/services/session-store.ts +7 -1
- package/src/api/src/services/supervisor-heartbeat.ts +29 -2
- package/src/web/dist/assets/index-B-t5Z6IP.js +138 -0
- package/src/web/dist/assets/index-B8yxzPmd.css +1 -0
- package/src/web/dist/assets/{index-DlFP0kZX.js → index-QEh7u0yu.js} +1 -1
- package/src/web/dist/assets/{preview-app-3C1r9jSY.js → preview-app-CscJIJRm.js} +1 -1
- package/src/web/dist/index.html +2 -2
- package/src/web/dist/assets/index-BnhRwHgb.css +0 -1
- package/src/web/dist/assets/index-DyFUdV3e.js +0 -116
package/package.json
CHANGED
|
@@ -743,8 +743,14 @@ function buildSupervisionSection(node: OrgNode): string {
|
|
|
743
743
|
- ✅ **Peer consult**: Unsure about business/market direction? → \`python3 "$CONSULT_CMD" cbo "question"\`
|
|
744
744
|
- ⚠️ **Course correct**: Wrong direction → \`python3 "$SUPERVISION_CMD" amend <ses-id> "new instruction"\`
|
|
745
745
|
- 🛑 **Abort**: Seriously wrong → \`python3 "$SUPERVISION_CMD" abort <ses-id> --reason "why"\`
|
|
746
|
-
- ✅ **All done
|
|
746
|
+
- ✅ **All done?** → Before reporting done, **verify deliverables** (see Quality Gate below)
|
|
747
747
|
4. **Repeat** watch until all subordinates complete. Do NOT stop after one tick.
|
|
748
|
+
5. **Quality Gate**: When subordinates report done, **run and test** the output:
|
|
749
|
+
- For web apps/games: start a local server and open in browser to verify it actually works
|
|
750
|
+
- Try the core user interactions — if basic things don't work, it's NOT done
|
|
751
|
+
- Check that required libraries/tools mentioned in the task are actually used
|
|
752
|
+
- If gaps found → re-dispatch with **specific, actionable** feedback (not "improve quality")
|
|
753
|
+
- There is NO time limit. Non-working code is worse than less code that works.
|
|
748
754
|
|
|
749
755
|
## Supervision Commands
|
|
750
756
|
|
|
@@ -56,6 +56,7 @@ sessionsRouter.patch('/:id', (req, res) => {
|
|
|
56
56
|
|
|
57
57
|
/* DELETE /api/sessions — bulk delete (body: { ids }) or ?empty=true */
|
|
58
58
|
sessionsRouter.delete('/', (req, res) => {
|
|
59
|
+
console.log(`[Sessions] DELETE / called (empty=${req.query.empty}, origin=${req.headers.origin ?? req.headers.referer ?? 'unknown'})`);
|
|
59
60
|
if (req.query.empty === 'true') {
|
|
60
61
|
const result = deleteEmpty();
|
|
61
62
|
res.json(result);
|
|
@@ -72,6 +73,7 @@ sessionsRouter.delete('/', (req, res) => {
|
|
|
72
73
|
|
|
73
74
|
/* DELETE /api/sessions/:id — delete session */
|
|
74
75
|
sessionsRouter.delete('/:id', (req, res) => {
|
|
76
|
+
console.log(`[Sessions] DELETE /${req.params.id} called (origin=${req.headers.origin ?? req.headers.referer ?? 'unknown'})`);
|
|
75
77
|
const ok = deleteSession(req.params.id);
|
|
76
78
|
if (!ok) {
|
|
77
79
|
res.status(404).json({ error: 'Session not found' });
|
|
@@ -254,10 +254,16 @@ export function updateSession(id: string, updates: Partial<Pick<Session, 'title'
|
|
|
254
254
|
return session;
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
export function deleteSession(id: string): boolean {
|
|
257
|
+
export function deleteSession(id: string, force = false): boolean {
|
|
258
258
|
const session = cache.get(id);
|
|
259
259
|
if (!session) return false;
|
|
260
260
|
|
|
261
|
+
// BUG-008 fix: protect wave sessions from accidental deletion
|
|
262
|
+
if (session.waveId && !force) {
|
|
263
|
+
console.warn(`[SessionStore] BLOCKED deletion of wave session ${id} (waveId=${session.waveId}, roleId=${session.roleId}). Use force=true to override.`);
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
|
|
261
267
|
console.log(`[SessionStore] Deleting session ${id} (roleId=${session.roleId}, waveId=${session.waveId ?? 'none'}, messages=${session.messages.length})`);
|
|
262
268
|
cache.delete(id);
|
|
263
269
|
const p = sessionPath(id);
|
|
@@ -294,12 +294,39 @@ If new CEO directives arrive mid-execution, they will appear in your supervision
|
|
|
294
294
|
marked as [CEO DIRECTIVE]. These are PRIORITY 1 — process before anything else.
|
|
295
295
|
${recoveryContext}
|
|
296
296
|
|
|
297
|
+
## Quality Gate (CRITICAL — G-09)
|
|
298
|
+
⛔ **"Subordinate said done" ≠ "Work is actually done."**
|
|
299
|
+
⛔ **"Code exists" ≠ "Code works."** You MUST run and test the output, not just read files.
|
|
300
|
+
|
|
301
|
+
Before declaring yourself done, you MUST:
|
|
302
|
+
|
|
303
|
+
1. **Read the actual output files** — don't trust status reports. Check the code yourself.
|
|
304
|
+
2. **RUN it and test it** — this is the most important step:
|
|
305
|
+
- For web apps/games: \`cd <code-dir> && python3 -m http.server 9999\` then open in browser
|
|
306
|
+
- Actually try the core interactions (click buttons, press keys, navigate)
|
|
307
|
+
- If basic interactions fail (can't move, can't click, blank screen) → it's NOT done
|
|
308
|
+
3. **Count against requirements** — if the directive says "15 monsters, 7 maps", count them.
|
|
309
|
+
4. **Check the directive's specific tech requirements** — if it mentions a specific library/engine, verify it's actually used in the code (grep for it).
|
|
310
|
+
5. **If quality is insufficient → re-dispatch** with specific, actionable feedback:
|
|
311
|
+
- "Arrow keys don't move the player. Fix input handling in WorldScene."
|
|
312
|
+
- "TyconoForge was required but not used. Add character rendering with TyconoForge.render()."
|
|
313
|
+
- NOT vague feedback like "improve quality" or "make it better"
|
|
314
|
+
6. **Iterate until the directive is truly fulfilled.** There is NO time limit.
|
|
315
|
+
20,000 lines of non-working code is worse than 5,000 lines that actually play.
|
|
316
|
+
|
|
317
|
+
Re-dispatch pattern:
|
|
318
|
+
- dispatch same C-Level with specific gaps identified
|
|
319
|
+
- Each iteration should close specific gaps, not redo everything
|
|
320
|
+
- Maximum 5 iterations per C-Level before escalating
|
|
321
|
+
|
|
297
322
|
## Instructions
|
|
298
323
|
1. Analyze the directive and decide which C-Level roles to dispatch (not necessarily all)
|
|
299
324
|
2. Dispatch them with clear tasks
|
|
300
325
|
3. Enter supervision watch loop
|
|
301
|
-
4. Monitor, **actively relay results between teams**, course-correct
|
|
302
|
-
5.
|
|
326
|
+
4. Monitor, **actively relay results between teams**, course-correct
|
|
327
|
+
5. When subordinates report done → **verify deliverables against requirements (G-09)**
|
|
328
|
+
6. If gaps exist → re-dispatch with specific feedback. Repeat 3-5.
|
|
329
|
+
7. Only when ALL requirements are met → compile results and report`;
|
|
303
330
|
|
|
304
331
|
// Create supervisor session
|
|
305
332
|
const session = createSession('ceo', {
|