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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tycono",
3
- "version": "0.1.94-beta.5",
3
+ "version": "0.1.94-beta.7",
4
4
  "description": "Build an AI company. Watch them work.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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**: Compile results and report to your superior
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, until all done
302
- 5. Compile results and report`;
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', {