#!/usr/bin/env bash
set -euo pipefail

echo "=== Testing --continue Flag Fix ==="
echo

# Build first
echo "1. Building project..."
npm run build > /dev/null 2>&1
echo "   ✓ Build complete"
echo

# Test session finder logic directly
echo "2. Testing session finder with current directory..."
node -e "
const { resolve, join } = require('path');
const { readdirSync, statSync, readFileSync } = require('fs');
const { homedir } = require('os');

const workingDirectory = process.cwd();
const projectId = resolve(workingDirectory).replace(/[\\\\\\/\.:]/g, '-');
const claudeConfigDir = process.env.CLAUDE_CONFIG_DIR || join(homedir(), '.claude');
const projectDir = join(claudeConfigDir, 'projects', projectId);

const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\$/i;

const files = readdirSync(projectDir)
    .filter(f => f.endsWith('.jsonl'))
    .map(f => {
        const sessionId = f.replace('.jsonl', '');
        if (!uuidPattern.test(sessionId)) return null;

        const sessionFile = join(projectDir, f);
        const sessionData = readFileSync(sessionFile, 'utf-8').split('\\n');

        // Use NEW validation logic (with multi-format support)
        const hasGoodMessage = sessionData.some((v) => {
            try {
                const parsed = JSON.parse(v);
                return (typeof parsed.uuid === 'string' && parsed.uuid.length > 0) ||
                       (typeof parsed.messageId === 'string' && parsed.messageId.length > 0) ||
                       (typeof parsed.leafUuid === 'string' && parsed.leafUuid.length > 0);
            } catch (e) {
                return false;
            }
        });

        if (!hasGoodMessage) return null;

        return {
            name: f,
            sessionId: sessionId,
            mtime: statSync(sessionFile).mtime.getTime()
        };
    })
    .filter(f => f !== null)
    .sort((a, b) => b.mtime - a.mtime);

console.log('Valid sessions found:', files.length);
if (files.length > 0) {
    console.log('Most recent session ID:', files[0].sessionId);
} else {
    console.log('ERROR: No valid sessions found');
    process.exit(1);
}
" || { echo "   ✗ Session finder test failed"; exit 1; }

echo "   ✓ Session finder working correctly"
echo

echo "=== All Checks Passed ✓ ==="
echo
echo "Fix verified successfully!"
echo
echo "To test --continue in real usage:"
echo "  consortium --continue \"test continuation\""
echo
echo "To check logs:"
echo "  tail -50 ~/.consortium/logs/\$(ls -t ~/.consortium/logs/ | head -1) | grep -E '(session|continue|resume)'"
