================================================================================
MANUAL DEPLOYMENT - Interactive SSH Session
================================================================================

Step 1: Open SSH Connection
----------------------------
In PowerShell, run:

    plink guru@172.16.3.30

Enter your password. You should see:
    guru@gururmm:~$


Step 2: Check if file was copied
---------------------------------
In the SSH session, type:

    ls -lh /tmp/conv.py

If it says "No such file or directory":
  - Exit SSH (type: exit)
  - Run: pscp D:\ClaudeTools\api\routers\conversation_contexts.py guru@172.16.3.30:/tmp/conv.py
  - Reconnect: plink guru@172.16.3.30
  - Continue below

If file exists, continue:


Step 3: Deploy the file
------------------------
In the SSH session, run these commands one at a time:

    sudo mv /tmp/conv.py /opt/claudetools/api/routers/conversation_contexts.py
    sudo chown claudetools:claudetools /opt/claudetools/api/routers/conversation_contexts.py
    sudo systemctl restart claudetools-api

(sudo should not ask for password if passwordless is set up)


Step 4: Verify deployment
--------------------------
In the SSH session, run:

    grep -c "search_term.*Query" /opt/claudetools/api/routers/conversation_contexts.py

Expected output: 1 (or higher)
If you see 0, the old file is still there.


Step 5: Check service status
-----------------------------
In the SSH session, run:

    sudo systemctl status claudetools-api --no-pager | head -15

Look for:
- "Active: active (running)"
- Recent timestamp (today's date, last few minutes)


Step 6: Exit SSH
-----------------
Type:

    exit


Step 7: Test the API
---------------------
Back in PowerShell, run:

python -c "import requests; r=requests.get('http://172.16.3.30:8001/api/conversation-contexts/recall', headers={'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpbXBvcnQtc2NyaXB0Iiwic2NvcGVzIjpbImFkbWluIiwiaW1wb3J0Il0sImV4cCI6MTc3MTI3NTEyOX0.-DJF50tq0MaNwVQBdO7cGYNuO5pQuXte-tTj5DpHi2U'}, params={'search_term': 'dataforth', 'limit': 2}); data=r.json(); print('SUCCESS - New code!' if 'contexts' in data else 'FAILED - Old code'); print(f'Contexts: {len(data.get(\"contexts\", []))}' if 'contexts' in data else f'Format: {list(data.keys())}')"

Expected output if successful:
    SUCCESS - New code!
    Contexts: 2

Expected output if failed:
    FAILED - Old code
    Format: ['context', 'project_id', 'tags', 'limit', 'min_relevance_score']


================================================================================
ALTERNATIVE: Copy/Paste File Content
================================================================================

If pscp isn't working, you can manually paste the file content:

1. Open: D:\ClaudeTools\api\routers\conversation_contexts.py in a text editor
2. Copy ALL the content (Ctrl+A, Ctrl+C)
3. SSH to server: plink guru@172.16.3.30
4. Create file with nano: nano /tmp/conv.py
5. Paste content (Right-click in PuTTY)
6. Save: Ctrl+X, Y, Enter
7. Continue from Step 3 above

================================================================================
