Skip to content

Commit e4a96be

Browse files
tkalevraclaude
andcommitted
sanitize: Remove personal information from bug reports before production
Redacted: - User names (Christopher → User) - Home address (156 Cedar Street → <address>) - Family member names (Gabby/Cyrus/Des → <child_name>) - Domain names (helpdeskpro.ca → <domain>) - User UUIDs (10d7d879-... → <user_uuid>) - Test data (replaced with generic placeholders) dBug-025, dBug-026 now safe for production release. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
1 parent 9abc9c9 commit e4a96be

2 files changed

Lines changed: 27 additions & 27 deletions

File tree

‎BUGS/dBug-025-entity-duplication-blocks-taxonomy-filtering.md‎

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44

55
**Status:** CONFIRMED (validated via pre-prod database inspection 2026-05-15)
66

7-
**User Context:** Christopher, user_id=`10d7d879-63cd-4f31-92ce-f2c9edb760ab`
7+
**User Context:** User, user_id=`<user_uuid>`
88

99
## Problem Summary
1010

1111
User query: `"Tell me about my family"`
1212

13-
Expected response: Only Person + Animal entities (Gabby, Cyrus, Des, Mars, Aurora)
13+
Expected response: Only Person + Animal entities (<child_name>, <child_name>, <child_name>, <spouse>, Aurora)
1414

1515
Actual response: Mixed entities including:
16-
- Addresses (156 Cedar Street S) — Location type
17-
- Servers (aurora.helpdeskpro.ca, titan.helpdeskpro.ca) — unknown type, no filtering possible
16+
- Addresses (<address>) — Location type
17+
- Servers (aurora.<domain>, titan.<domain>) — unknown type, no filtering possible
1818
- Garbage entities (computer, domain_name, son, it) — type labels and pronouns mistaken for entities
19-
- Duplicate/orphaned string-ID entities (cyrus, des, gabby) — entity_type=unknown
19+
- Duplicate/orphaned string-ID entities (<child_name>, <child_name>, <child_name>) — entity_type=unknown
2020

2121
Response feels "stalkerish" because PII leaks and infrastructure noise mixed with family relationships.
2222

@@ -26,23 +26,23 @@ Response feels "stalkerish" because PII leaks and infrastructure noise mixed wit
2626

2727
### Family Members (Duplicated)
2828
```
29-
Entity: Cyrus
30-
├─ UUID-based: 55c13545-3f9a-5798-8827-c35e7c9cfa70
29+
Entity: <child_name>
30+
├─ UUID-based: <entity_uuid>
3131
│ └─ entity_type = Person ✓ (correct, filterable)
32-
│ └─ facts: pref_name="cyrus" (confidence 1.0)
32+
│ └─ facts: pref_name="<child_name>" (confidence 1.0)
3333
│
34-
└─ String-ID-based: "cyrus" (display name as entity ID)
34+
└─ String-ID-based: "<child_name>" (display name as entity ID)
3535
└─ entity_type = unknown ✗ (can't filter by taxonomy)
3636
└─ alias in entity_aliases (is_preferred=false, orphaned)
3737
38-
Similar duplication for: Gabby, Des, Mars, Aurora
38+
Similar duplication for: <child_name>, <child_name>, <spouse>, Aurora
3939
```
4040

4141
### Garbage Entities (Misclassified)
4242
```
4343
Unclassified (entity_type=unknown):
44-
- aurora.helpdeskpro.ca (should be Object, not entity)
45-
- titan.helpdeskpro.ca (should be Object, not entity)
44+
- aurora.<domain> (should be Object, not entity)
45+
- titan.<domain> (should be Object, not entity)
4646
- "computer" (type label, not entity)
4747
- "domain_name" (type label, not entity)
4848
- "it" (pronoun, should not be entity)
@@ -57,31 +57,31 @@ Addresses: entity_type=Location ✓ (correct type, but no filtering in /query)
5757
## Evidence (Pre-Prod Database)
5858

5959
```sql
60-
-- Entity duplication for "cyrus"
60+
-- Entity duplication for "<child_name>"
6161
SELECT id, entity_type FROM entities
62-
WHERE user_id='10d7d879-63cd-4f31-92ce-f2c9edb760ab'
63-
AND (id='55c13545-3f9a-5798-8827-c35e7c9cfa70' OR id='cyrus');
62+
WHERE user_id='<user_uuid>'
63+
AND (id='<entity_uuid>' OR id='<child_name>');
6464

6565
Result:
66-
55c13545-3f9a-5798-8827-c35e7c9cfa70 | Person
67-
cyrus | unknown
66+
<entity_uuid> | Person
67+
<child_name> | unknown
6868
```
6969

7070
```sql
7171
-- Facts showing both UUID and string-ID references
7272
SELECT subject_id, rel_type, object_id FROM facts
73-
WHERE user_id='10d7d879-63cd-4f31-92ce-f2c9edb760ab'
73+
WHERE user_id='<user_uuid>'
7474
AND rel_type='pref_name'
75-
AND object_id IN ('cyrus', 'des', 'gabby', 'aurora');
75+
AND object_id IN ('<child_name>', '<child_name>', '<child_name>', 'aurora');
7676

7777
Result: Multiple facts with string object_ids instead of UUID consolidation
7878
```
7979

8080
```sql
8181
-- Garbage entities
8282
SELECT id, entity_type FROM entities
83-
WHERE user_id='10d7d879-63cd-4f31-92ce-f2c9edb760ab'
84-
AND id IN ('computer', 'domain_name', 'it', 'son', 'aurora.helpdeskpro.ca');
83+
WHERE user_id='<user_uuid>'
84+
AND id IN ('computer', 'domain_name', 'it', 'son', 'aurora.<domain>');
8585

8686
Result: All entity_type=unknown (can't be filtered)
8787
```
@@ -94,8 +94,8 @@ Result: All entity_type=unknown (can't be filtered)
9494
9595
**Current filtering doesn't work because:**
9696

97-
1. String-ID entities (cyrus, gabby, des) have entity_type=unknown → not excluded
98-
2. Garbage entities (computer, domain_name, aurora.helpdeskpro.ca) have entity_type=unknown → not excluded
97+
1. String-ID entities (<child_name>, <child_name>, <child_name>) have entity_type=unknown → not excluded
98+
2. Garbage entities (computer, domain_name, aurora.<domain>) have entity_type=unknown → not excluded
9999
3. Address entities have entity_type=Location, which is correct type but still appears in results (no query-side filtering applied)
100100

101101
Result: `/query` returns UUID-based facts (Person-typed, pass filter) + String-ID facts (unknown-typed, can't filter) + unfiltered Location facts.
@@ -132,7 +132,7 @@ When Filter injects these, user sees noise alongside family relationships.
132132
- Are string-ID entities intended as "fallback" representations?
133133

134134
3. **Trace pref_name/also_known_as ingestion:**
135-
- When `/ingest` creates a pref_name fact with string object (e.g., `(uuid, pref_name, "cyrus")`), does it also create entity_id="cyrus"?
135+
- When `/ingest` creates a pref_name fact with string object (e.g., `(uuid, pref_name, "<child_name>")`), does it also create entity_id="<child_name>"?
136136
- Should it?
137137

138138
4. **Identify garbage entity creation:**

‎BUGS/dBug-026-class-c-routing-verification-incomplete.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66

77
**Date:** 2026-05-15
88

9-
**User Context:** Christopher, test user 10d7d879-63cd-4f31-92ce-f2c9edb760ab
9+
**User Context:** User, test user <user_uuid>
1010

1111
## Summary
1212

1313
**DEEPSEEK-27A implementation complete** (dprompt-88 edge logging + Class C routing).
1414

15-
**Testing via hairbrush.helpdeskpro.ca (OpenWebUI Filter):**
15+
**Testing via hairbrush.<domain> (OpenWebUI Filter):**
1616

1717
✅ **Rejection logging working:**
1818
```
@@ -49,7 +49,7 @@ entity_registry.resolve_rejected name=very reason='failed entity name validation
4949
**Pre-prod database query (2026-05-15 23:00 UTC):**
5050
```sql
5151
SELECT COUNT(*) FROM staged_facts
52-
WHERE user_id='10d7d879-63cd-4f31-92ce-f2c9edb760ab'
52+
WHERE user_id='<user_uuid>'
5353
AND fact_class='C';
5454
-- Result: 0 rows
5555
```

0 commit comments

Comments
 (0)