diff --git a/.gitignore b/.gitignore
index 3519e84..e50c79a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@ local_backup_*
#docs/
mockups/
docs/superpowers/*
+.superpowers/
# ── Local utilities ──
config_backup.py
diff --git a/app/ideas/routes.py b/app/ideas/routes.py
index a74e49c..0280e31 100644
--- a/app/ideas/routes.py
+++ b/app/ideas/routes.py
@@ -170,12 +170,16 @@ def inbox():
'purpose': idea.idea_purpose or 'investment',
'state': display_state,
'age_days': idea_ages.get(idea.id, 0),
- 'thesis': (idea.thesis_summary[:80] + '...') if idea.thesis_summary and len(idea.thesis_summary) > 80 else (idea.thesis_summary or ''),
+ 'thesis': idea.thesis_summary or '',
+ 'notes': idea.initial_notes or '',
'source': idea.source or '',
'action': action,
'edit_url': url_for('ideas.edit_idea', idea_id=idea.id),
})
- ideas_json = json.dumps(ideas_data)
+ # Escape '<' so a thesis/name/notes value containing '' cannot
+ # terminate the inline
+
...' terminates the script
+ element and anything after it executes.
+ """
+ client, user_id = inbox_client
+ db.session.add(IdeaPipeline(
+ user_id=user_id, name='x',
+ status='inbox', thesis_summary=' in the thesis too'))
+ db.session.commit()
+
+ html = client.get('/ideas/inbox').get_data(as_text=True)
+
+ # The raw sequence must not survive into the rendered page at all.
+ assert '