{"slug": "ghostlight-finding-the-memory-when-you-have-forgotten-the-words", "title": "Ghostlight: finding the memory when you have forgotten the words", "summary": "A developer built Ghostlight, a browser-based semantic search app that retrieves personal notes by meaning rather than keyword, using the quantized Xenova/all-MiniLM-L6-v2 model via Transformers.js. Notes are split into overlapping passages, embedded in a Web Worker, and ranked by normalized dot product, with the archive stored in local browser storage and exportable as JSON. In a local test, the query \"someone helped solve a stubborn computer bug late at night\" ranked the fictional \"Midnight debugging\" fragment first with a cosine similarity of 0.48, which the developer describes as a demonstration rather than an accuracy benchmark.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine](https://dev.to/challenges/hacktoberfest-week4-2026-10-26).*\n\nA note can survive for years and still be hard to find. You remember that somebody helped when you were stuck, but the note itself says “a teammate sat with me after dinner.” A keyword search for “help” may not connect those two descriptions.\n\nGhostlight is a small browser app for searching fragments by meaning. Add a short note, describe what you remember, and the app returns up to three passages that seem related. The included six examples are fictional; they are there to let anyone try the interaction without contributing private memories.\n\nThe theme is a ghost in the archive: an idea or moment that has not disappeared, but is hard to reach. Ghostlight is a lantern, not a storyteller. It retrieves the original words instead of inventing a remembered event.\n\nLive demo: [https://j-m1s.github.io/ghostlight-hacktoberfest-2026/](https://j-m1s.github.io/ghostlight-hacktoberfest-2026/)\n\nThe first search downloads the open model, approximately 23 MB, plus its runtime and tokenizer. Type “someone helped solve a stubborn computer bug late at night.” In a local browser test, the fictional “Midnight debugging” fragment ranked first with a cosine similarity of 0.48. That one example is a demonstration, not an accuracy benchmark.\n\n[https://github.com/J-M1S/ghostlight-hacktoberfest-2026](https://github.com/J-M1S/ghostlight-hacktoberfest-2026)\n\nThe app was started on October 28, within this challenge window. Its original code is available under the MIT license. Third-party dependencies and the model retain their own licenses.\n\nThe app splits notes into overlapping passages. A Web Worker embeds those passages and the query with [Xenova/all-MiniLM-L6-v2](https://huggingface.co/Xenova/all-MiniLM-L6-v2), a quantized open-weight model, using [Transformers.js](https://huggingface.co/docs/transformers.js). The vectors are normalized; a dot product ranks the nearest passages. The interface shows at most one result per note, and the score is a similarity value rather than a probability.\n\nThe archive is kept in the current browser's local storage and can be exported or imported as JSON. A worker keeps the heavy computation off the main UI thread. The model downloads on first use, and passages are processed in small batches rather than as one enormous batch.\n\nOpenAI Codex designed and implemented the prototype and ran the browser tests. GitHub Copilot Student reviewed the worker code. Its review surfaced a possible vector-cache race if requests overlap, plus missing input checks and cache reset on failure; the implementation was updated accordingly. No personal archive was shared with Copilot.\n\nThe model runs locally in the browser, so this application does not send the note or query text to a hosted inference service. Using an open model also makes it possible to inspect and replace the model or runtime. It is not a promise of perfect privacy or offline operation: the site, fonts, library, and model files are downloaded from third parties that can observe normal network information, and browser data can be cleared or read by someone with access to the device. Export a backup and avoid sensitive material on a shared computer.\n\nThe model works best in English. A similarity ranking can be wrong, especially with ambiguous or long notes. This is a small experiment, not a historical record or a memory diagnosis tool. Its most useful quality is that it shows the source passage, so a person can decide whether the connection is real.", "url": "https://wpnews.pro/news/ghostlight-finding-the-memory-when-you-have-forgotten-the-words", "canonical_source": "https://dev.to/eling/ghostlight-finding-the-memory-when-you-have-forgotten-the-words-37jn", "published_at": "2026-10-28 09:05:22+00:00", "updated_at": "2026-10-28 09:11:18.676821+00:00", "lang": "en", "topics": ["artificial-intelligence", "machine-learning", "natural-language-processing", "ai-tools", "developer-tools"], "entities": ["Ghostlight", "Xenova/all-MiniLM-L6-v2", "Transformers.js", "OpenAI Codex", "GitHub Copilot", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ghostlight-finding-the-memory-when-you-have-forgotten-the-words", "markdown": "https://wpnews.pro/news/ghostlight-finding-the-memory-when-you-have-forgotten-the-words.md", "text": "https://wpnews.pro/news/ghostlight-finding-the-memory-when-you-have-forgotten-the-words.txt", "jsonld": "https://wpnews.pro/news/ghostlight-finding-the-memory-when-you-have-forgotten-the-words.jsonld"}}