From 2378f35426f6536ae3b3dc243d9ab465ceeb7178 Mon Sep 17 00:00:00 2001 From: huhuan Date: Sun, 11 Oct 2026 12:47:37 +0800 Subject: [PATCH 1/2] Publish improved offline web dialogue, icons, and modern exports --- .github/workflows/verify.yml | 28 + .gitignore | 5 + README.md | 31 +- docs/DEVELOPMENT.md | 29 + docs/EXPORTS.md | 44 + docs/VALIDATION.md | 20 + docs/performance.json | 54 + icons/apple-touch-icon.png | Bin 407682 -> 4057 bytes icons/favicon-16x16.png | Bin 0 -> 458 bytes icons/favicon-32x32.png | Bin 1713 -> 807 bytes icons/icon-192x192.png | Bin 36768 -> 4417 bytes icons/icon-512x512.png | Bin 407682 -> 15907 bytes icons/mark.svg | 1 + icons/maskable-icon.png | Bin 407682 -> 15178 bytes img/export-formats1.png | Bin 440921 -> 35806 bytes img/export-formats2.png | Bin 446361 -> 39457 bytes img/logo.png | Bin 2010405 -> 44938 bytes img/privacy-blur.png | Bin 486580 -> 32990 bytes img/screenshot.png | Bin 400937 -> 33227 bytes index.html | 1635 ++++++++++++------------- manifest.json | 97 +- package-lock.json | 710 +++++++++++ package.json | 16 + screenshots/screenshot1.png | Bin 400937 -> 44925 bytes screenshots/screenshot2.png | Bin 446361 -> 41107 bytes scripts/build-icons.cjs | 9 + scripts/build-web.cjs | 9 + service-worker.js | 136 +-- tests/browser.cjs | 70 ++ tests/export.test.cjs | 27 + tests/motion.cjs | 32 + tests/performance.cjs | 6 + web/exports.js | 93 ++ web/index.template.html | 2185 ++++++++++++++++++++++++++++++++++ web/storage.js | 27 + web/transcript.js | 67 ++ 36 files changed, 4285 insertions(+), 1046 deletions(-) create mode 100644 .github/workflows/verify.yml create mode 100644 .gitignore create mode 100644 docs/DEVELOPMENT.md create mode 100644 docs/EXPORTS.md create mode 100644 docs/VALIDATION.md create mode 100644 docs/performance.json create mode 100644 icons/favicon-16x16.png create mode 100644 icons/mark.svg create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 scripts/build-icons.cjs create mode 100644 scripts/build-web.cjs create mode 100644 tests/browser.cjs create mode 100644 tests/export.test.cjs create mode 100644 tests/motion.cjs create mode 100644 tests/performance.cjs create mode 100644 web/exports.js create mode 100644 web/index.template.html create mode 100644 web/storage.js create mode 100644 web/transcript.js diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml new file mode 100644 index 0000000..2ff4b34 --- /dev/null +++ b/.github/workflows/verify.yml @@ -0,0 +1,28 @@ +name: Verify web application +on: + push: + branches: [main, 'codex/**'] + pull_request: + workflow_dispatch: +permissions: + contents: read +jobs: + web: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + cache: npm + - run: npm ci + - run: npm run build && git diff --exit-code -- index.html + - run: npm test + - run: npx playwright install --with-deps chromium + - run: npm run test:motion + - run: npm run test:browser + - uses: actions/upload-artifact@v4 + if: always() + with: + name: browser-validation + path: .test-results/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dbef872 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +node_modules/ +dist/ +.test-results/ +macos/ diff --git a/README.md b/README.md index 6c51133..6676529 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ✨ ConversationsWithGod

- ConversationsWithGod Logo + ConversationsWithGod Logo

@@ -40,13 +40,15 @@ We all need space to process our thoughts, ask deep questions, and listen to our - **🔒 Complete Privacy**: All conversations stay on your device - **👁️ Ephemeral Memory**: Messages naturally fade and blur over time, mimicking real memory - **🎨 Beautiful Interface**: Clean, paper-like design with light and dark modes -- **💾 Export Options**: Save your conversations in multiple formats +- **💾 Export Options**: Complete backups, readable text, current API request bodies and fine-tuning datasets +- **🌿 Long Conversations**: Continuous history scrolling with only visible messages rendered +- **↩️ Undo**: Undo message deletion or clearing a conversation - **🤖 LLM Training Ready**: Export in formats compatible with various AI models - **📱 Fully Responsive**: Works on desktop and mobile devices ## 🔒 Privacy -Your conversations are stored only on your device using browser localStorage. Nothing is ever sent to a server. There are no analytics, no tracking, and no cookies. Your thoughts remain entirely your own. +Conversations are stored in browser IndexedDB, migrating older localStorage records. Nothing is ever sent to a server. There are no analytics, no tracking, and no cookies. Your thoughts remain entirely your own. ### Natural Privacy Protection @@ -54,12 +56,12 @@ Your conversations are stored only on your device using browser localStorage. No Privacy Through Fading

-Rather than relying on passwords or encryption, ConversationsWithGod implements privacy the way human memory works: +The fading display evokes the way human memory changes. It is a visual effect, not encryption or deletion: - **Time-Based Fading**: Older messages gradually become blurry and fade away - **Five Stages of Aging**: Messages progress through increasing levels of obscurity - **Natural Security**: Anyone glancing at your screen sees only your recent thoughts clearly -- **No Permanent Record**: The fading visual effect creates a sense of impermanence +- **Visual Fading**: The original text and timestamps remain saved and exportable. Both fade together on screen. This design reflects how memories and conversations naturally fade with time, providing both privacy and encouraging a focus on the present moment. @@ -73,19 +75,14 @@ This design reflects how memories and conversations naturally fade with time, pr ## 🧠 Exporting for AI Training -Your self-conversations can be valuable training data for personalizing AI models. ConversationsWithGod supports exporting in formats compatible with most major LLM platforms: +Choose a full backup for safekeeping, a request body to continue a dialogue with a model, or a JSONL dataset for fine-tuning. -- **🟢 OpenAI/ChatGPT** (JSON, JSONL) -- **🟣 Anthropic/Claude** (Human/Assistant format) -- **🔵 Meta/LLaMA** (Instruction format) -- **🟠 ShareGPT** (Community format) -- **🟡 Alpaca** (Instruction tuning format) -- **⚪ Plain Text** (Universal format) +- OpenAI-compatible Chat Completions, OpenAI Responses, Anthropic Messages and Gemini generateContent +- OpenAI supervised fine-tuning JSONL with answer weights, Hugging Face / TRL messages JSONL and ShareGPT JSONL +- Complete JSON backup, portable messages history, plain text +- Legacy Claude text, Llama 2 INST, ShareGPT JSON and Alpaca JSON -

- Export Format Options - Export Format Options -

+Saving starts with readable text. Choose another use to reveal backup, AI continuation or fine-tuning options. All exports are generated locally; the app does not call model APIs. Supply your provider's model ID when preparing an API request. See [the export guide](docs/EXPORTS.md) for continuation, training context, loss masking and current API schemas. ## 🕊️ The Philosophy Behind It @@ -116,7 +113,7 @@ Every star, fork, and share helps this little light reach more seekers in a digi ## 👥 Contributing -Contributions are welcome! Feel free to open issues or submit pull requests on the [GitHub repository](https://github.com/studentiz/ConversationsWithGod). +Contributions are welcome! Feel free to open issues or submit pull requests on the [GitHub repository](https://github.com/studentiz/ConversationsWithGod). See [development instructions](docs/DEVELOPMENT.md) and [validation results](docs/VALIDATION.md) for building and checking the web version. --- diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md new file mode 100644 index 0000000..dcca64a --- /dev/null +++ b/docs/DEVELOPMENT.md @@ -0,0 +1,29 @@ +# Develop and build + +Node.js 24 is used for the web build and tests. + +```sh +npm ci +npm run build +npm test +npx playwright install chromium +npm run test:motion +npm run test:browser +``` + +`web/index.template.html` contains the original paper UI and interaction code. `web/storage.js`, `web/transcript.js` and `web/exports.js` are inlined by the build into the standalone root `index.html`. GitHub Pages serves that generated file from `main` as before. + +The public build is a single standalone HTML file plus optional PWA assets. `npm run build:icons` regenerates the web icons and README logo from `icons/mark.svg`, using the same borderless dialogue-bubble shapes and paper/gray/green palette as the interface. + +## Storage + +Pages migrates the previous `chat_messages` localStorage array into IndexedDB atomically and only removes the source after a successful transaction. Subsequent appends write one message. Standalone browsers that deny IndexedDB retain the localStorage fallback. A storage failure keeps the current text in memory, gives an actionable error and lets the next save recover the full state. Damaged history is not overwritten. + +## Rendering and motion + +The transcript uses variable-height virtual rows with overscan, measured height caching, binary-search lookup and explicit scroll anchoring. Native browser anchoring is disabled to avoid double adjustment when spacers change. Every message remains in the history and is reachable by continuous scrolling; exporting reads the full history, not the rendered DOM. + +Only a newly sent short message gets a character-opacity reveal. Grapheme segmentation preserves composed emoji and text, spans are capped at 160. A single character fades in over 600 ms; phrases have at least a 700 ms span between the first and last character starts, with a 420 ms fade for each. Longer passages use approximately 65 ms between starts, capped at a six-second stagger, and collapse back to one text node within 6.52 seconds. Long messages render immediately. Menus and dialogs use short opacity / transform transitions. The reduced-motion preference removes reveals and transitions; hidden documents stop maintenance timers and finish active text reveals. Idle conversations have no continuous decorative animation. Aging is applied to a shared content wrapper so the body and timestamp fade and blur together, while deletion controls stay clear. There is no added fading toggle or backup import item. + +These choices follow [Apple's motion guidance](https://developer.apple.com/design/human-interface-guidelines/motion): purposeful, brief feedback, input available during animation, and accessibility preferences. Smoothness and power are tested separately from correctness; there is no measured battery-life claim. + diff --git a/docs/EXPORTS.md b/docs/EXPORTS.md new file mode 100644 index 0000000..69a03f8 --- /dev/null +++ b/docs/EXPORTS.md @@ -0,0 +1,44 @@ +# Export a dialogue for another model + +The two voices are written by you. In exports, the seeker becomes `user` and the voice of inner wisdom becomes `assistant`. Choose **Save a copy… → Backup** to preserve the exact individual messages, timestamps, names and order. Fading affects the display only. + +Opening **Save a copy…** starts with readable text. You can save immediately, or change **Save for** to a backup, AI continuation, fine-tuning, or another format. Only the fields for that use appear. Additional model instructions and training context are under **Options**; model instructions are off by default. These operations generate files locally and never call a model or upload a conversation. + +## Continue a conversation + +| Export | Request body | Where it fits | +| --- | --- | --- | +| Messages history | `messages` with `role` and `content` | SDKs and local models; choose your own chat template | +| OpenAI-compatible Chat Completions | `model`, `messages` | Compatible OpenAI, DeepSeek, Qwen and local endpoints | +| OpenAI Responses | `model`, `input`, optional `instructions` | Responses API | +| Anthropic Messages | `model`, `max_tokens`, `messages`, optional top-level `system` | Messages API | +| Gemini generateContent | `contents` with `parts`, optional `systemInstruction` | Model chosen in the request URL | + +Enter the model ID your provider supplies. If the dialogue already ends with an answer, enter your next question in the export dialog. That question is added to the exported request only. Supply endpoint, authentication and provider-specific settings in your own caller. The Anthropic starter output limit is 2048 tokens; adjust it in your caller. + +For example, in Python, an exported compatible request body can be used with a configured client: + +```python +import json +from openai import OpenAI + +client = OpenAI() # reads credentials from your environment +with open("request.json", encoding="utf-8") as file: + request = json.load(file) +response = client.chat.completions.create(**request) +print(response.choices[0].message.content) +``` + +Adjacent messages from the same role, which can occur after deleting a turn, are joined with a blank line. Their text remains intact. Exports that require a user-first dialogue report an assistant-first history instead of silently removing it; use the complete backup or messages history to retain that history as-is. + +## Fine-tune + +Choose **Fine-tuning a model**, then your training tool. The file is a JSONL dataset. Each line ends at an answered assistant turn. The context setting limits previous **exchanges**, not tokens; use the chosen model's tokenizer to check the final examples. Incomplete final questions are retained in backups and continuation history, and excluded from training examples. An assistant-only opening is excluded with a visible explanation. + +- **OpenAI supervised fine-tuning:** messages JSONL. The newest assistant answer has `weight: 1`; earlier answers in the same window have `weight: 0`, preventing those context answers from becoming repeated loss targets. OpenAI currently requires at least 10 examples; the dialog reports smaller datasets. Review your examples before combining conversations and uploading. +- **Hugging Face / TRL:** messages JSONL without provider-specific weights. Select assistant loss masking in your trainer. With zero previous exchanges, each answered pair occurs once; with overlapping context, your trainer determines which earlier answers contribute to loss. +- **ShareGPT:** `conversations` JSONL with `from` / `value`, for training tools accepting this schema. Configure the tool's dataset mapping and chat template. + +Human/Assistant text, Llama 2 INST, whole-conversation ShareGPT JSON and Alpaca JSON remain available under **Other formats**. Use the current model's own template for newer Llama and Qwen models. Alpaca exports answered pairs without prior dialogue context; it is not a complete backup. + +Sources checked on 2026-10-11: [OpenAI SFT](https://developers.openai.com/api/docs/guides/supervised-fine-tuning), [OpenAI loss weights](https://developers.openai.com/api/docs/guides/fine-tuning-best-practices), [Responses input](https://developers.openai.com/api/reference/resources/responses/methods/create), [Anthropic Messages](https://platform.claude.com/docs/en/api/messages/create), [Gemini generateContent](https://ai.google.dev/api/generate-content), [TRL datasets and loss configuration](https://huggingface.co/docs/trl/sft_trainer). Automated tests validate emitted data and edge cases; they do not perform paid API calls or actual model training. diff --git a/docs/VALIDATION.md b/docs/VALIDATION.md new file mode 100644 index 0000000..6213f74 --- /dev/null +++ b/docs/VALIDATION.md @@ -0,0 +1,20 @@ +# Validation · 2026-10-11 + +Local hardware: Apple M4 Pro, macOS 15.8. Chrome runs headlessly at 390 × 844 for the history benchmark. Both versions use the same message contents, timestamps, viewport, browser and first-frame measurement. Baseline HTML is pinned to GitHub commit `6a4ae6e9a7980d7d83af4e41ee6b75671f341ee2`. + +| History | Before: open | After: open | Before: live message nodes | After: live message nodes | Before: send median | After: send median | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| 3,000 messages | 778 ms | 178 ms | 3,003 | 13 | 22.3 ms | 18.4 ms | +| 10,000 messages | 2,310 ms | 316 ms | 10,003 | 14 | 79.2 ms | 6.2 ms | + +Opening measurements include the new version's initial migration. Send timing measures click-to-next-animation-frame; it is not disk durability latency. The data is one local run with three sends per condition, rather than a cross-device performance guarantee. In the 90-frame scripted scroll probe, both versions recorded zero intervals above 34 ms; after-change p95 intervals were 16.7 ms in both sizes. This probe alone does not establish smoothness of every animation. Run `npm run benchmark` to reproduce; raw results go into `.test-results/performance.json`. + +Browser integration covers 100, 3,000 and 10,000 messages: complete migration and reload, continuous top/middle/end history access, bounded row count, stable-ID deletion and undo, full-history download, composition input, multiline input, bounded character animation and cleanup, reduced motion, quota failure recovery, corrupt-history preservation, offline reopening, standalone HTML, font changes and fading. Notification rectangles remain below the header and above the composer in portrait and small landscape layouts. The normal conversation has no persistent save/status footer, connection messages, font-change messages or automatic installation banner. Saving starts with a readable copy; backup and model settings appear only when selected. A storage failure offers a working Save a copy action, opening a damaged history can be retried. Browser tests exercise these controls and verify continuation and training exports while offline, without network requests after initial page loading. + +Export-format tests cover backup fidelity, provider-specific request fields, training target weights, incomplete turns, adjacent-role merging, Unicode text and the retained legacy formats. + +API requests and fine-tuning files are validated against the linked schemas and local tests. No paid model calls or training jobs were performed. Battery consumption has not been measured; the implementation bounds rendering and character spans, stops maintenance when hidden and avoids continuous idle animation. + + +The timestamp regression first failed with a clear timestamp beside blurred text; after the fix the inherited blur is identical for both, with the delete control unaffected. A three-character Chinese phrase previously reached 0.96 opacity on the last character after 210 ms; it now still has its last character at zero opacity then, completes within the bounded reveal time and retains its exact text. These focused regressions run with `npm run test:motion`. Browser integration also checks compact 320 × 400 / 320 × 568, landscape, tablet and desktop dimensions, complete reveal cleanup, reduced motion, and the removal of the two unrequested menu items. + diff --git a/docs/performance.json b/docs/performance.json new file mode 100644 index 0000000..579c379 --- /dev/null +++ b/docs/performance.json @@ -0,0 +1,54 @@ +[ + { + "version": "old", + "messages": 3000, + "bootMs": 778, + "domMessages": 3003, + "sendMs": [ + 23.399999998509884, + 22.30000000447035, + 22.100000001490116 + ], + "scrollFrameP95Ms": 16.700000000000273, + "scrollFramesOver34Ms": 0 + }, + { + "version": "old", + "messages": 10000, + "bootMs": 2310, + "domMessages": 10003, + "sendMs": [ + 86.5, + 79.10000000149012, + 79.19999999552965 + ], + "scrollFrameP95Ms": 16.700000000000728, + "scrollFramesOver34Ms": 0 + }, + { + "version": "new", + "messages": 3000, + "bootMs": 178, + "domMessages": 13, + "sendMs": [ + 18.599999994039536, + 14.600000001490116, + 18.399999998509884 + ], + "scrollFrameP95Ms": 16.700000000000045, + "scrollFramesOver34Ms": 0 + }, + { + "version": "new", + "messages": 10000, + "bootMs": 316, + "domMessages": 14, + "sendMs": [ + 18.200000002980232, + 4.5, + 6.200000002980232 + ], + "scrollFrameP95Ms": 16.700000000000273, + "scrollFramesOver34Ms": 0 + } +] diff --git a/icons/apple-touch-icon.png b/icons/apple-touch-icon.png index e0b8714b7aaaf0ffd22c307cdd271bd7bb99bd82..9c2540ec016a11abe7fac870acc44910c53a8005 100644 GIT binary patch literal 4057 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 literal 407682 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

*BSpXI5S#H?Trf9z@ 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 y$Ir8JA_@dL4_%xYyQr%dj2WU=yR4Pk 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