Refactor session summary rendering to remove links

- Removed link generation for session summaries in context generation and search manager.
- Updated output formatting to exclude links while maintaining the session summary structure.
- Adjusted related components in TimelineService to ensure consistency across the application.
This commit is contained in:
Alex Newman
2025-12-14 21:05:14 -05:00
parent 8703e0ee13
commit 6dd13c00ba
8 changed files with 48 additions and 57 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ Restart Claude Code. Context from previous sessions will automatically appear in
- 🔒 **Privacy Control** - Use `<private>` tags to exclude sensitive content from storage - 🔒 **Privacy Control** - Use `<private>` tags to exclude sensitive content from storage
- ⚙️ **Context Configuration** - Fine-grained control over what context gets injected - ⚙️ **Context Configuration** - Fine-grained control over what context gets injected
- 🤖 **Automatic Operation** - No manual intervention required - 🤖 **Automatic Operation** - No manual intervention required
- 🔗 **Citations** - Reference past decisions with `claude-mem://` URIs - 🔗 **Citations** - Reference past observations with IDs (access via http://localhost:37777/api/observation/{id} or view all in the web viewer at http://localhost:37777)
- 🧪 **Beta Channel** - Try experimental features like Endless Mode via version switching - 🧪 **Beta Channel** - Try experimental features like Endless Mode via version switching
--- ---
+1 -1
View File
@@ -29,7 +29,7 @@ Restart Claude Code. Context from previous sessions will automatically appear in
- ⚙️ **Context Configuration** - Fine-grained control over what context gets injected - ⚙️ **Context Configuration** - Fine-grained control over what context gets injected
- 🤖 **Automatic Operation** - No manual intervention required - 🤖 **Automatic Operation** - No manual intervention required
- 📊 **FTS5 Search** - Fast full-text search across observations - 📊 **FTS5 Search** - Fast full-text search across observations
- 🔗 **Citations** - Reference past decisions with `claude-mem://` URIs - 🔗 **Citations** - Reference past observations with IDs (access via http://localhost:37777/api/observation/{id} or view all in the web viewer at http://localhost:37777)
## How It Works ## How It Works
+3 -4
View File
@@ -246,11 +246,10 @@ authentication for better scalability and stateless design...
## Citations ## Citations
All search results include citations using the `claude-mem://` URI scheme: All search results include observation IDs that can be accessed via the HTTP API:
- `claude-mem://observation/123` - Specific observation - `http://localhost:37777/api/observation/{id}` - Get specific observation by ID
- `claude-mem://session/abc-456` - Specific session - View all observations in the web viewer at `http://localhost:37777`
- `claude-mem://user-prompt/789` - Specific user prompt
These citations enable referencing specific historical context in your work. These citations enable referencing specific historical context in your work.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -5
View File
@@ -501,14 +501,11 @@ export async function generateContext(input?: ContextInput, useColors: boolean =
const summary = item.data; const summary = item.data;
const summaryTitle = `${summary.request || 'Session started'} (${formatDateTime(summary.displayTime)})`; const summaryTitle = `${summary.request || 'Session started'} (${formatDateTime(summary.displayTime)})`;
const link = summary.shouldShowLink ? `claude-mem://session-summary/${summary.id}` : '';
if (useColors) { if (useColors) {
const linkPart = link ? `${colors.dim}[${link}]${colors.reset}` : ''; output.push(`🎯 ${colors.yellow}#S${summary.id}${colors.reset} ${summaryTitle}`);
output.push(`🎯 ${colors.yellow}#S${summary.id}${colors.reset} ${summaryTitle} ${linkPart}`);
} else { } else {
const linkPart = link ? ` [→](${link})` : ''; output.push(`**🎯 #S${summary.id}** ${summaryTitle}`);
output.push(`**🎯 #S${summary.id}** ${summaryTitle}${linkPart}`);
} }
output.push(''); output.push('');
} else { } else {
+3 -7
View File
@@ -565,10 +565,9 @@ export class SearchManager {
const sess = item.data as SessionSummarySearchResult; const sess = item.data as SessionSummarySearchResult;
const title = sess.request || 'Session summary'; const title = sess.request || 'Session summary';
const link = `claude-mem://session-summary/${sess.id}`;
const marker = isAnchor ? ' ← **ANCHOR**' : ''; const marker = isAnchor ? ' ← **ANCHOR**' : '';
lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)}) [→](${link})${marker}`); lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`);
lines.push(''); lines.push('');
} else if (item.type === 'prompt') { } else if (item.type === 'prompt') {
if (tableOpen) { if (tableOpen) {
@@ -1679,10 +1678,9 @@ export class SearchManager {
// Render session // Render session
const sess = item.data as SessionSummarySearchResult; const sess = item.data as SessionSummarySearchResult;
const title = sess.request || 'Session summary'; const title = sess.request || 'Session summary';
const link = `claude-mem://session-summary/${sess.id}`;
const marker = isAnchor ? ' ← **ANCHOR**' : ''; const marker = isAnchor ? ' ← **ANCHOR**' : '';
lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)}) [→](${link})${marker}`); lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`);
lines.push(''); lines.push('');
} else if (item.type === 'prompt') { } else if (item.type === 'prompt') {
// Close any open table // Close any open table
@@ -1841,7 +1839,6 @@ export class SearchManager {
if (obs.subtitle) { if (obs.subtitle) {
lines.push(` - ${obs.subtitle}`); lines.push(` - ${obs.subtitle}`);
} }
lines.push(` - Source: claude-mem://observation/${obs.id}`);
lines.push(''); lines.push('');
} }
@@ -1969,9 +1966,8 @@ export class SearchManager {
// Render session // Render session
const sess = item.data as SessionSummarySearchResult; const sess = item.data as SessionSummarySearchResult;
const title = sess.request || 'Session summary'; const title = sess.request || 'Session summary';
const link = `claude-mem://session-summary/${sess.id}`;
lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)}) [→](${link})`); lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)})`);
lines.push(''); lines.push('');
} else if (item.type === 'prompt') { } else if (item.type === 'prompt') {
// Close any open table // Close any open table
+1 -2
View File
@@ -148,10 +148,9 @@ export class TimelineService {
const sess = item.data as SessionSummarySearchResult; const sess = item.data as SessionSummarySearchResult;
const title = sess.request || 'Session summary'; const title = sess.request || 'Session summary';
const link = `claude-mem://session-summary/${sess.id}`;
const marker = isAnchor ? ' ← **ANCHOR**' : ''; const marker = isAnchor ? ' ← **ANCHOR**' : '';
lines.push(`**🎯 #S${sess.id}** ${title} (${this.formatDateTime(item.epoch)}) [→](${link})${marker}`); lines.push(`**🎯 #S${sess.id}** ${title} (${this.formatDateTime(item.epoch)})${marker}`);
lines.push(''); lines.push('');
} else if (item.type === 'prompt') { } else if (item.type === 'prompt') {
if (tableOpen) { if (tableOpen) {