diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..153139e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,18 @@ +name: CI + +on: + push: + pull_request: + +jobs: + test: + runs-on: macos-14 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v12 + + - name: Run tests in Nix dev shell + run: nix develop -c bash -lc "cd app && pnpm install --frozen-lockfile && pnpm test" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..80597cb --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,76 @@ +name: Release + +on: + push: + tags: + - "v*" + +permissions: + contents: write + +jobs: + release: + runs-on: macos-14 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v12 + + - name: Validate release version + shell: bash + run: | + set -euo pipefail + + TAG_VERSION="${GITHUB_REF_NAME#v}" + PACKAGE_VERSION="$(grep -m1 '"version"' app/package.json | sed -E 's/.*"version": "([^"]+)".*/\1/')" + CARGO_VERSION="$(grep -m1 '^version = ' app/src-tauri/Cargo.toml | sed -E 's/version = "([^"]+)"/\1/')" + TAURI_VERSION="$(grep -m1 '"version"' app/src-tauri/tauri.conf.json | sed -E 's/.*"version": "([^"]+)".*/\1/')" + + if [[ "$TAG_VERSION" != 1* ]]; then + echo "Release tag version must start with '1' or higher. Found: $TAG_VERSION" >&2 + exit 1 + fi + + if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ] || [ "$TAG_VERSION" != "$CARGO_VERSION" ] || [ "$TAG_VERSION" != "$TAURI_VERSION" ]; then + echo "Version mismatch detected:" >&2 + echo "tag=$TAG_VERSION package=$PACKAGE_VERSION cargo=$CARGO_VERSION tauri=$TAURI_VERSION" >&2 + exit 1 + fi + + - name: Build release bundle + run: ./build-app.sh --release + + - name: Package macOS artifacts + shell: bash + run: | + set -euo pipefail + + VERSION_TAG="${GITHUB_REF_NAME}" + ARTIFACT_DIR="release-artifacts" + APP_PATH="app/src-tauri/target/release/bundle/macos/Ponder.app" + + mkdir -p "$ARTIFACT_DIR" + + if [ ! -d "$APP_PATH" ]; then + echo "Expected app bundle missing: $APP_PATH" >&2 + exit 1 + fi + + ZIP_PATH="$ARTIFACT_DIR/Ponder-macOS-${VERSION_TAG}.zip" + ditto -c -k --sequesterRsrc --keepParent "$APP_PATH" "$ZIP_PATH" + + DMG_PATH="$(find app/src-tauri/target/release/bundle -type f -name '*.dmg' | head -n 1 || true)" + if [ -n "$DMG_PATH" ]; then + cp "$DMG_PATH" "$ARTIFACT_DIR/" + fi + + shasum -a 256 "$ARTIFACT_DIR"/* > "$ARTIFACT_DIR/SHA256SUMS.txt" + + - name: Publish GitHub Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + files: | + release-artifacts/* diff --git a/.gitignore b/.gitignore index 2486423..1e74828 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,20 @@ -/.opencode +.opencode/ + +# OS files .DS_Store + +# Environment files +.env +.env.* +!.env.example + +# Build artifacts and dependencies +dist/ +node_modules/ +app/dist/ +app/node_modules/ +app/src-tauri/target/ +app/src-tauri/gen/ + +# Logs +*.log diff --git a/AGENTS.md b/AGENTS.md index 2876d1d..5b9ad46 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,43 +1,12 @@ # Agents +Project-level instructions for coding agents working in this repository. + ## Nix (Builds and Dependencies) Use Nix as the source of truth for tooling, builds, and dependencies. -- Prefer entering the dev environment via `nix develop` (or `nix develop .#`) before running repo commands. +- Enter the dev environment with `nix develop` (or `nix develop .#`) before running project commands. - Prefer `nix build`, `nix run`, and `nix flake check` over ad-hoc install flows. - Avoid installing tooling via Homebrew, npm/pnpm, or `cargo install` outside the Nix environment unless explicitly requested. -- Run the build script `./build-app.sh` after codings. - -## References - -- Figma MCP usage and handshake: `FIGMA_MCP.md` -- MCP examples: `FIGMA_MCP_EXAMPLES.md` - -## UI Implementation - -### Core principles - -- Treat Figma MCP output as design reference, not final code style. -- Use existing components -- Replace Tailwind utilities with project tokens/utilities when applicable. -- Use the project's color system, typography scale, and spacing tokens consistently. -- Ask the user to select the frames and components you are interested in for `get_design_context` -- Asking really is better than guessing - -### Visual fidelity - -- Aim for 1:1 parity with Figma. -- Prefer design-system tokens and adjust spacing or sizes minimally to match visuals. -- Validate against screenshots for both look and behavior. - -### Layout and responsiveness - -- Implement responsiveness based on Figma Auto Layout. -- Respect min-width and max-width settings of frames, if set -- Parent frames are adaptive unless Figma specifies a fixed width. - -### Interaction and states - -- Implement component interaction states when defined in Figma (hover, focus, active, disabled). -- Honor any annotations provided in Figma +- Run `./build-app.sh` after code changes (defaults to `--debug`; use `--release` when needed). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..48b680f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,13 @@ +# Contributing + +## Setup and Build + +See the developer guide: + +- `docs/developer/BUILD_AND_RELEASE.md` + +## Pull requests + +1. Keep changes scoped and focused. +2. Update documentation if behavior or developer workflow changes. +3. Ensure tests pass before opening a PR. diff --git a/FIGMA-DEVIATIONS.md b/FIGMA-DEVIATIONS.md deleted file mode 100644 index b116f63..0000000 --- a/FIGMA-DEVIATIONS.md +++ /dev/null @@ -1,18 +0,0 @@ -# Figma Deviations - -This file documents intentional or known deviations from the Figma reference. - -## Overview -- Figma frames were not available in the execution context; no visual diff was performed beyond tokenization updates. - -## Editor -- Responsive editor column and fluid type scale were added to meet UI-02; confirm alignment with Figma when frames are provided. - -## Todo List -- Figma frames were not available in the execution context; no visual diff was performed beyond tokenization updates. - -## Workspaces -- Figma frames were not available in the execution context; no visual diff was performed beyond tokenization updates. - -## Components (SearchBar, PillInput, TagAutocomplete, Toast) -- Tokenized styles applied; Figma reference not available to verify exact spacing and state treatments. diff --git a/FIGMA_MCP.md b/FIGMA_MCP.md deleted file mode 100644 index c72c6f1..0000000 --- a/FIGMA_MCP.md +++ /dev/null @@ -1,73 +0,0 @@ -# Figma MCP - -## Endpoint - -- URL: `http://127.0.0.1:3845/mcp` -- Server type: Streamable HTTP (SSE responses) -- Every request is an HTTP POST -- The `Accept: application/json, text/event-stream` header is required - -## Session handshake - -1. Initialize - -```http -POST http://127.0.0.1:3845/mcp -Content-Type: application/json -Accept: application/json, text/event-stream - -{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"agent","version":"1.0"}},"id":1} -``` - -2. Send initialized notification - -```http -POST http://127.0.0.1:3845/mcp -Content-Type: application/json -Accept: application/json, text/event-stream -mcp-session-id: - -{"jsonrpc":"2.0","method":"notifications/initialized"} -``` - -3. Call a tool - -```http -POST http://127.0.0.1:3845/mcp -Content-Type: application/json -Accept: application/json, text/event-stream -mcp-session-id: - -{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_metadata","input":{}},"id":2} -``` - -## Response parsing - -Responses are Server-Sent Events. Read the `data:` line and JSON-parse the payload. - -``` -event: message -data: {"result":{...},"jsonrpc":"2.0","id":2} -``` - -## Tools - -- `get_metadata` returns the XML structure; use `nodeId: "0:1"` for the full page -- `get_screenshot` returns a base64 PNG image -- `get_design_context` returns React + Tailwind code with design details -- `get_variable_defs` returns design tokens/variables - -If a tool supports `nodeId`, pass it to avoid manual selection. Note: `get_design_context` -can still require an active selection even with `nodeId` (MCP/Figma quirk). If it returns -"Nothing is selected", tell the user to select the target frame in Figma and re-run the -same request with the same `nodeId`. - -## Required flow - -1. Run `get_metadata` with `nodeId: "0:1"` to find frame IDs and hierarchy. -2. Run `get_design_context` with `nodeId` on the target node. If it returns - "Nothing is selected", instruct the user to select the frame and retry. -3. Run `get_screenshot` with `nodeId` on the same node for visual validation. -4. Optionally run `get_variable_defs` with `nodeId` for tokens. -5. Implement using project conventions (tokens, components, typography). -6. Validate against the screenshot for 1:1 fidelity. diff --git a/FIGMA_MCP_EXAMPLES.md b/FIGMA_MCP_EXAMPLES.md deleted file mode 100644 index 4d8ece9..0000000 --- a/FIGMA_MCP_EXAMPLES.md +++ /dev/null @@ -1,32 +0,0 @@ -# Figma MCP Examples - -## Discover component variants - -```http -POST http://127.0.0.1:3845/mcp -Content-Type: application/json -Accept: application/json, text/event-stream -mcp-session-id: - -{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_metadata","input":{"nodeId":"0:1"}},"id":1} -``` - -Metadata reveals the component tree and variant node IDs. - -```http -POST http://127.0.0.1:3845/mcp -Content-Type: application/json -Accept: application/json, text/event-stream -mcp-session-id: - -{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_design_context","input":{"nodeId":"1:319"}},"id":2} -``` - -```http -POST http://127.0.0.1:3845/mcp -Content-Type: application/json -Accept: application/json, text/event-stream -mcp-session-id: - -{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_screenshot","input":{"nodeId":"1:319"}},"id":3} -``` diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..64c8139 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Alexander Lehmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 9e1828d..17855a7 100644 --- a/README.md +++ b/README.md @@ -1,168 +1,114 @@ -# Ponder Note +# Ponder -Ponder is a fast, keyboard-friendly desktop app for people who keep their notes in Markdown files and want action items to stay connected to the original notes. +**Ponder is a fast, keyboard-friendly macOS notes app for people who keep notes in Markdown and want one aggregated todo view across all notes.** -Built for meeting notes, project logs, and personal knowledge workflows where plain files matter. +[![Latest Release](https://img.shields.io/github/v/release/bsplt/Ponder-Note?display_name=tag)](https://github.com/bsplt/Ponder-Note/releases) +[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) +[![Platform](https://img.shields.io/badge/platform-macOS-111827)](https://github.com/bsplt/Ponder-Note/releases) -## Why Ponder +You keep your own local `.md` files, stay sovereign from subscription services, and choose your own sync method (for example iCloud Drive, Dropbox, or Git). -- Keep notes as plain `.md` files in your own folders. -- Switch between up to 9 workspace folders instantly. -- Search note titles and full content from one overview. -- Extract open todos from all notes and triage them in one screen. -- Toggle todos once and sync the checkbox back to the source note. +https://github.com/user-attachments/assets/988312f1-f63b-414a-ba5e-a1bb9a8e05a2 -## What You Can Use It For +## Download -- Meeting protocols with action-item tracking. -- Team/project notebooks split by workspace (client, product, ops, etc.). -- Personal planning in Markdown without lock-in to a proprietary note format. -- "Inbox + execution" flow where notes and todos stay in sync. +- Latest release: [GitHub Releases](https://github.com/bsplt/Ponder-Note/releases) +- Platform: macOS desktop app -## Feature Highlights +## Install (macOS) -- **Markdown-first notes**: notes are root-level `.md` files in your workspace. -- **Auto title extraction**: note title is derived from the first line (Markdown-aware). -- **Autosave editor**: with retry logic when save fails. -- **Tagging system**: add tags as pills, with autocomplete from existing workspace tags. -- **Powerful search**: - - Full-text matching across title + body preview. - - Multi-term AND search. - - `*` wildcard support (example: `meet*`). - - Include/exclude tag filters (`#tag` and `#-tag`). -- **Todo aggregation**: - - Parses Markdown checkboxes (`[ ]`, `- [ ]`, `[x]`). - - Skips fenced code blocks and blockquotes. - - Groups todos by note tags, ordered by recency. -- **Safe deletion**: deleting a note moves it to `deleted/` (no hard delete). -- **Workspace health + fallback**: detects missing/unreadable folders and supports fallback slot behavior. -- **Rebuild diagnostics**: writes and displays rebuild logs for note sidecar/index maintenance. +1. Download the latest release asset from the Releases page. +2. Open the downloaded archive and move `Ponder.app` to your `Applications` folder. +3. Start Ponder. +4. If macOS blocks first launch, right-click the app, choose **Open**, then confirm. -## Quick Start (Nix-first) +## What Ponder Does -### Prerequisites +- Keeps your notes as plain `.md` files in your own folders. +- Lets you switch between up to 9 workspaces instantly. +- Searches titles and full note content from one overview. +- Aggregates open markdown todos from all notes into one focused list. +- Lets you jump from a todo to its source note and back to the todo list quickly. +- Toggles todos and writes changes back to the source note, so notes and task view stay in sync. -- Nix with flakes enabled -- macOS toolchain (Xcode Command Line Tools) +## Why the Todo Workflow Works -### Run in dev mode +Ponder is built for back-and-forth work: capture context in notes, execute from one aggregated todo list, jump back into the source note when needed, then continue in the list. You do not lose context and you do not need to manually sync task lists. -```bash -nix develop -cd app -pnpm install -pnpm tauri dev -``` +## Who Ponder Is For -### Run tests +- People who want Markdown notes as real files on disk. +- Users who prefer keyboard-driven note and task workflows. +- Anyone who wants flexible syncing via their own tools (Drive or Git). -```bash -nix develop -cd app -pnpm test -``` +## Who Ponder Is Not For -### Build a debug app bundle +- Teams looking for a hosted, multi-user SaaS workspace. +- Users who want cloud-only storage managed by the app vendor. +- People who need built-in collaboration features like live co-editing. -From repo root: +## Quick Usage -```bash -./build-app.sh -``` +1. Open **Workspaces** and connect a folder. This folder is your workspace root where Ponder stores and reads your `.md` note files. +2. Create or open a note in **Overview**. +3. Write in Markdown and add tags, including markdown checkboxes for tasks. +4. Open **Todos** to work from one aggregated list across all notes. +5. Jump into source notes, edit context, and continue directly in the todo list. -## Usage Workflow +## Keyboard Essentials -1. Open **Workspaces** and assign a folder to a slot (1-9). -2. In **Overview**, create a note (`New Note`) or open an existing one. -3. Write in Markdown. Lines starting with `o ` are converted to `[ ]` when exiting edit mode. -4. Add tags in the editor to power filtering and todo grouping. -5. Open **Todos** to process open tasks across notes. +- `o`: Overview +- `w`: Workspaces +- `t`: Todos +- `n`: New note +- `?` or `h`: Shortcuts help +- `Esc`: Back/close current input mode -## Keyboard Shortcuts +## Data and Privacy -Open the in-app shortcuts page with `h`, `?`, or the `?` button in the Overview search bar. +- Your notes stay in your selected local folders. +- Ponder metadata is stored per workspace in `.ponder/`. +- Deletions are soft deletes to `deleted/`. +- Sync is your choice: use any file sync service or Git workflow you prefer. -### Global (outside editor, when not typing) +## Screenshots -- `o` -> Overview -- `w` -> Workspaces -- `t` -> Todos -- `n` -> New note -- `h` -> Shortcuts -- `?` -> Shortcuts +![Ponder Overview](docs/screenshots/Overview.webp) -### Overview +![Editor Preview](docs/screenshots/Editor-Preview.webp) -- `1..9` -> Switch workspace slot -- `Arrow Up / Arrow Down` -> Move selection -- `Enter` -> Open selected note / create new note -- `d` (twice) -> Delete selected note (moves to `deleted/`) -- `c` -> Toggle compact list -- `Cmd/Ctrl + f` -> Focus search -- `Esc` -> Clear search and tag filters +![Editor Editing](docs/screenshots/Editor-Editing.webp) -### Search input (Overview) +![Todo List](docs/screenshots/Todo-List.webp) -- `Esc` -> Clear search + filters and blur -- `Backspace` (empty input) -> Remove last tag pill -- `Enter` with `#tag` or `#-tag` -> Create include/exclude tag pill -- `Space` with `#tag` or `#-tag` -> Create include/exclude tag pill +## FAQ and Compatibility -### Editor +### What platforms are supported? -- `Esc` -> Exit editor -- `e` -> Switch from preview to edit mode -- `o` then `Space` at line start (`o `) -> On exit, replaced with `[ ]` to create a todo +Ponder is currently distributed as a macOS desktop app via GitHub Releases. -### Editor tag input + autocomplete +### Where are my notes stored? -- `Enter` or `,` -> Commit tag pill -- `Backspace` (empty input) -> Remove last tag -- `Arrow Up / Arrow Down` -> Navigate autocomplete -- `Tab` or `Enter` -> Accept autocomplete selection -- `Esc` -> Close autocomplete +In the workspace folder you choose. Ponder reads and writes your `.md` files there directly. -### Editor preview todo rows +### Can I sync notes with iCloud/Dropbox/Google Drive? -- `Enter` -> Toggle todo -- `Arrow Up / Arrow Down` -> Move todo-row focus +Yes. Because notes are normal local files, you can use any folder-sync provider you prefer. -### Todos +### Can I sync with Git instead? -- `Arrow Up / Arrow Down` -> Move selection -- `Space` -> Toggle todo -- `Enter` -> Open source note -- `Esc` -> Back to overview +Yes. Many users keep their workspace folder in a Git repo and use their own Git workflow. -## Workspace/Data Model +## Support -For each workspace folder: +- Bug reports and feature requests: [GitHub Issues](https://github.com/bsplt/Ponder-Note/issues) -- Notes live at root as timestamp-based files (for example `1739612345678.md`). -- Ponder metadata lives in `.ponder/`: - - `.ponder/meta/.json` (title, timestamps, tags, plus preserved extra fields) - - `.ponder/rebuild-log.json` - - `.ponder/index/version.json` -- Deleted notes are moved to `deleted/`. +## Developer Docs -## Tech Stack +Technical docs for build, CI, and release publishing are in: -- **Desktop shell**: Tauri v2 (Rust backend) -- **Frontend**: React 19 + TypeScript + Vite -- **Testing**: Vitest -- **Tooling**: Nix dev shell, pnpm, Cargo +- `docs/developer/BUILD_AND_RELEASE.md` -## Project Structure +## License -```text -. -├── app/ # Tauri app (frontend + Rust backend) -│ ├── src/ # React UI -│ └── src-tauri/ # Rust commands, domain logic, storage -├── flake.nix # Nix dev shell definition -└── build-app.sh # Nix-based debug build helper -``` - -## Notes - -- This repo currently has no explicit OSS license file. Add one before broad reuse/distribution. +This project is licensed under the MIT License. See `LICENSE`. diff --git a/app/README.md b/app/README.md deleted file mode 100644 index 102e366..0000000 --- a/app/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Tauri + React + Typescript - -This template should help get you started developing with Tauri, React and Typescript in Vite. - -## Recommended IDE Setup - -- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) diff --git a/app/package.json b/app/package.json index 84c7176..90e7624 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "app", "private": true, - "version": "0.1.0", + "version": "1.0.0", "type": "module", "scripts": { "dev": "vite", diff --git a/app/src-tauri/Cargo.lock b/app/src-tauri/Cargo.lock index 15d137a..761f780 100644 --- a/app/src-tauri/Cargo.lock +++ b/app/src-tauri/Cargo.lock @@ -49,7 +49,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "app" -version = "0.1.0" +version = "1.0.0" dependencies = [ "platform-dirs", "regex", diff --git a/app/src-tauri/Cargo.toml b/app/src-tauri/Cargo.toml index 34a39aa..9e2cefe 100644 --- a/app/src-tauri/Cargo.toml +++ b/app/src-tauri/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "app" -version = "0.1.0" -description = "A Tauri App" -authors = ["you"] +version = "1.0.0" +description = "Ponder Note desktop application built with Tauri" +authors = ["Alexander Lehmann"] edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/app/src-tauri/tauri.conf.json b/app/src-tauri/tauri.conf.json index 4959834..a3581e8 100644 --- a/app/src-tauri/tauri.conf.json +++ b/app/src-tauri/tauri.conf.json @@ -1,8 +1,8 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Ponder", - "version": "0.1.0", - "identifier": "com.alexanderlehmann.app", + "version": "1.0.0", + "identifier": "io.github.pondernote", "build": { "beforeDevCommand": "pnpm dev", "devUrl": "http://localhost:1420", diff --git a/build-app.sh b/build-app.sh index e1b5f97..f7e9760 100755 --- a/build-app.sh +++ b/build-app.sh @@ -3,6 +3,53 @@ set -euo pipefail ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) APP_DIR="$ROOT_DIR/app" +BUILD_MODE="${PONDER_BUILD_MODE:-debug}" +TAURI_ARGS=() + +usage() { + cat <<'EOF' +Usage: ./build-app.sh [--debug|--release] [-- ] + +Defaults: + --debug (unless PONDER_BUILD_MODE=release) + +Examples: + ./build-app.sh + ./build-app.sh --release + ./build-app.sh --release -- --bundles app +EOF +} + +while (($# > 0)); do + case "$1" in + --debug) + BUILD_MODE="debug" + shift + ;; + --release) + BUILD_MODE="release" + shift + ;; + -h|--help) + usage + exit 0 + ;; + --) + shift + TAURI_ARGS+=("$@") + break + ;; + *) + TAURI_ARGS+=("$1") + shift + ;; + esac +done + +if [[ "$BUILD_MODE" != "debug" && "$BUILD_MODE" != "release" ]]; then + echo "Error: unsupported build mode '$BUILD_MODE'. Use debug or release." >&2 + exit 1 +fi if ! command -v nix >/dev/null 2>&1; then echo "Error: nix is not installed or not on PATH." >&2 @@ -14,5 +61,49 @@ if [ ! -d "$APP_DIR" ]; then exit 1 fi -nix --extra-experimental-features "nix-command flakes" develop "$ROOT_DIR" -c bash -c \ - 'cd "$1" && pnpm install && pnpm tauri build --debug "${@:2}"' bash "$APP_DIR" "$@" +echo "Building Ponder in '$BUILD_MODE' mode..." + +if ((${#TAURI_ARGS[@]} > 0)); then + nix --extra-experimental-features "nix-command flakes" develop "$ROOT_DIR" -c bash -c \ + ' + set -euo pipefail + + app_dir="$1" + mode="$2" + shift 2 + + cd "$app_dir" + pnpm install + + if [ "$mode" = "release" ]; then + pnpm tauri build "$@" + out_dir="$app_dir/src-tauri/target/release/bundle" + else + pnpm tauri build --debug "$@" + out_dir="$app_dir/src-tauri/target/debug/bundle" + fi + + echo "Build artifacts: $out_dir" + ' bash "$APP_DIR" "$BUILD_MODE" "${TAURI_ARGS[@]}" +else + nix --extra-experimental-features "nix-command flakes" develop "$ROOT_DIR" -c bash -c \ + ' + set -euo pipefail + + app_dir="$1" + mode="$2" + + cd "$app_dir" + pnpm install + + if [ "$mode" = "release" ]; then + pnpm tauri build + out_dir="$app_dir/src-tauri/target/release/bundle" + else + pnpm tauri build --debug + out_dir="$app_dir/src-tauri/target/debug/bundle" + fi + + echo "Build artifacts: $out_dir" + ' bash "$APP_DIR" "$BUILD_MODE" +fi diff --git a/initial_prompt.md b/docs/ai/initial_prompt.md similarity index 100% rename from initial_prompt.md rename to docs/ai/initial_prompt.md diff --git a/docs/developer/BUILD_AND_RELEASE.md b/docs/developer/BUILD_AND_RELEASE.md new file mode 100644 index 0000000..4e34db2 --- /dev/null +++ b/docs/developer/BUILD_AND_RELEASE.md @@ -0,0 +1,90 @@ +# Build and Release + +Developer guide for local setup, testing, build artifacts, and GitHub releases. + +## Tooling and Environment + +- Use Nix as source of truth for tooling. +- Enter the environment with: + +```bash +nix develop +``` + +## Local Development + +```bash +cd app +pnpm install +pnpm tauri dev +``` + +## Tests + +```bash +nix develop -c bash -lc "cd app && pnpm test" +``` + +## Build + +From repository root: + +```bash +./build-app.sh +``` + +Release build: + +```bash +./build-app.sh --release +``` + +## Build Output Folders + +- Debug artifacts: + - `app/src-tauri/target/debug/bundle` +- Release artifacts: + - `app/src-tauri/target/release/bundle` + +## Release Versioning + +Before tagging a release, keep these versions in sync: + +- `app/package.json` +- `app/src-tauri/Cargo.toml` +- `app/src-tauri/tauri.conf.json` + +Current release policy expects versions starting with `1` or higher. + +## Publish a GitHub Release + +1. Commit version changes. +2. Push your branch. +3. Create and push tag (example): + +```bash +git tag v1.0.0 +git push origin v1.0.0 +``` + +## Release Automation + +- CI tests workflow: + - `.github/workflows/ci.yml` +- Release workflow: + - `.github/workflows/release.yml` + +Release workflow behavior: + +1. Triggers on `v*` tags. +2. Validates tag version against app version files. +3. Builds release bundle. +4. Packs macOS artifacts and SHA256 checksums. +5. Publishes assets to GitHub Release. + +## Internal Project Docs + +- Development log and planning: `docs/devlog/planning/` +- Design references: `docs/design/` +- AI context docs: `docs/ai/` +- Internal helper tools/docs: `docs/tools/` diff --git a/.planning/PROJECT.md b/docs/devlog/planning/PROJECT.md similarity index 100% rename from .planning/PROJECT.md rename to docs/devlog/planning/PROJECT.md diff --git a/.planning/REQUIREMENTS.md b/docs/devlog/planning/REQUIREMENTS.md similarity index 100% rename from .planning/REQUIREMENTS.md rename to docs/devlog/planning/REQUIREMENTS.md diff --git a/.planning/ROADMAP.md b/docs/devlog/planning/ROADMAP.md similarity index 100% rename from .planning/ROADMAP.md rename to docs/devlog/planning/ROADMAP.md diff --git a/.planning/STATE.md b/docs/devlog/planning/STATE.md similarity index 100% rename from .planning/STATE.md rename to docs/devlog/planning/STATE.md diff --git a/.planning/config.json b/docs/devlog/planning/config.json similarity index 100% rename from .planning/config.json rename to docs/devlog/planning/config.json diff --git a/.planning/phases/01-workspaces/01-01-PLAN.md b/docs/devlog/planning/phases/01-workspaces/01-01-PLAN.md similarity index 94% rename from .planning/phases/01-workspaces/01-01-PLAN.md rename to docs/devlog/planning/phases/01-workspaces/01-01-PLAN.md index 75d8b12..dfb475a 100644 --- a/.planning/phases/01-workspaces/01-01-PLAN.md +++ b/docs/devlog/planning/phases/01-workspaces/01-01-PLAN.md @@ -55,11 +55,11 @@ Output: Tauri app scaffold in `app/` that can run via `pnpm tauri dev` inside `n -@.planning/PROJECT.md -@.planning/STATE.md -@.planning/REQUIREMENTS.md -@.planning/phases/01-workspaces/01-CONTEXT.md -@.planning/phases/01-workspaces/01-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/REQUIREMENTS.md +@docs/devlog/planning/phases/01-workspaces/01-CONTEXT.md +@docs/devlog/planning/phases/01-workspaces/01-RESEARCH.md @flake.nix @@ -160,5 +160,5 @@ Note: Do not implement workspace logic in this plan; keep it purely structural. -After completion, create `.planning/phases/01-workspaces/01-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/01-workspaces/01-01-SUMMARY.md` diff --git a/.planning/phases/01-workspaces/01-01-SUMMARY.md b/docs/devlog/planning/phases/01-workspaces/01-01-SUMMARY.md similarity index 95% rename from .planning/phases/01-workspaces/01-01-SUMMARY.md rename to docs/devlog/planning/phases/01-workspaces/01-01-SUMMARY.md index 2a59ecb..dc27c0a 100644 --- a/.planning/phases/01-workspaces/01-01-SUMMARY.md +++ b/docs/devlog/planning/phases/01-workspaces/01-01-SUMMARY.md @@ -71,7 +71,7 @@ Runnable Tauri v2 app scaffold (Vite + React + TypeScript) with dialog plugin wi - **Impact:** No repo changes; affects only how commands are invoked locally. 2. [Rule 3 - Blocking] Summary template path missing in this environment - - **Fix:** Wrote `.planning/phases/01-workspaces/01-01-SUMMARY.md` without the external template. + - **Fix:** Wrote `docs/devlog/planning/phases/01-workspaces/01-01-SUMMARY.md` without the external template. ## Authentication Gates diff --git a/.planning/phases/01-workspaces/01-02-PLAN.md b/docs/devlog/planning/phases/01-workspaces/01-02-PLAN.md similarity index 96% rename from .planning/phases/01-workspaces/01-02-PLAN.md rename to docs/devlog/planning/phases/01-workspaces/01-02-PLAN.md index 1d259d1..55267a9 100644 --- a/.planning/phases/01-workspaces/01-02-PLAN.md +++ b/docs/devlog/planning/phases/01-workspaces/01-02-PLAN.md @@ -50,9 +50,9 @@ Output: WorkspaceService (Rust) + command surface + typed JS invoke wrappers. -@.planning/REQUIREMENTS.md -@.planning/phases/01-workspaces/01-CONTEXT.md -@.planning/phases/01-workspaces/01-RESEARCH.md +@docs/devlog/planning/REQUIREMENTS.md +@docs/devlog/planning/phases/01-workspaces/01-CONTEXT.md +@docs/devlog/planning/phases/01-workspaces/01-RESEARCH.md @app/src-tauri/src/main.rs @@ -177,5 +177,5 @@ Error surface requirements: -After completion, create `.planning/phases/01-workspaces/01-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/01-workspaces/01-02-SUMMARY.md` diff --git a/.planning/phases/01-workspaces/01-02-SUMMARY.md b/docs/devlog/planning/phases/01-workspaces/01-02-SUMMARY.md similarity index 100% rename from .planning/phases/01-workspaces/01-02-SUMMARY.md rename to docs/devlog/planning/phases/01-workspaces/01-02-SUMMARY.md diff --git a/.planning/phases/01-workspaces/01-03-PLAN.md b/docs/devlog/planning/phases/01-workspaces/01-03-PLAN.md similarity index 97% rename from .planning/phases/01-workspaces/01-03-PLAN.md rename to docs/devlog/planning/phases/01-workspaces/01-03-PLAN.md index 267b390..2c5b4c4 100644 --- a/.planning/phases/01-workspaces/01-03-PLAN.md +++ b/docs/devlog/planning/phases/01-workspaces/01-03-PLAN.md @@ -62,9 +62,9 @@ Output: Fully functional workspace management + switching UI backed by Rust comm -@.planning/REQUIREMENTS.md -@.planning/phases/01-workspaces/01-CONTEXT.md -@.planning/phases/01-workspaces/01-RESEARCH.md +@docs/devlog/planning/REQUIREMENTS.md +@docs/devlog/planning/phases/01-workspaces/01-CONTEXT.md +@docs/devlog/planning/phases/01-workspaces/01-RESEARCH.md @app/src/screens/Overview.tsx @app/src/screens/Workspaces.tsx @app/src/api/workspace.ts @@ -195,5 +195,5 @@ WS-04 enforcement: -After completion, create `.planning/phases/01-workspaces/01-03-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/01-workspaces/01-03-SUMMARY.md` diff --git a/.planning/phases/01-workspaces/01-03-SUMMARY.md b/docs/devlog/planning/phases/01-workspaces/01-03-SUMMARY.md similarity index 100% rename from .planning/phases/01-workspaces/01-03-SUMMARY.md rename to docs/devlog/planning/phases/01-workspaces/01-03-SUMMARY.md diff --git a/.planning/phases/01-workspaces/01-04-PLAN.md b/docs/devlog/planning/phases/01-workspaces/01-04-PLAN.md similarity index 91% rename from .planning/phases/01-workspaces/01-04-PLAN.md rename to docs/devlog/planning/phases/01-workspaces/01-04-PLAN.md index db93a3d..e63bf36 100644 --- a/.planning/phases/01-workspaces/01-04-PLAN.md +++ b/docs/devlog/planning/phases/01-workspaces/01-04-PLAN.md @@ -33,8 +33,8 @@ Output: Verified Phase 01 behavior (or a diagnosed issue list for gap-closure pl -@.planning/ROADMAP.md -@.planning/phases/01-workspaces/01-CONTEXT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/phases/01-workspaces/01-CONTEXT.md @@ -84,7 +84,7 @@ Tauri app scaffold + Rust WorkspaceService + Workspaces/Overview UI implementing -- All Phase 1 success criteria in `.planning/ROADMAP.md` are confirmed via manual run. +- All Phase 1 success criteria in `docs/devlog/planning/ROADMAP.md` are confirmed via manual run. @@ -92,5 +92,5 @@ Tauri app scaffold + Rust WorkspaceService + Workspaces/Overview UI implementing -After completion, create `.planning/phases/01-workspaces/01-04-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/01-workspaces/01-04-SUMMARY.md` diff --git a/.planning/phases/01-workspaces/01-04-SUMMARY.md b/docs/devlog/planning/phases/01-workspaces/01-04-SUMMARY.md similarity index 96% rename from .planning/phases/01-workspaces/01-04-SUMMARY.md rename to docs/devlog/planning/phases/01-workspaces/01-04-SUMMARY.md index 3b74dba..62f1ca1 100644 --- a/.planning/phases/01-workspaces/01-04-SUMMARY.md +++ b/docs/devlog/planning/phases/01-workspaces/01-04-SUMMARY.md @@ -18,7 +18,7 @@ tech-stack: patterns: [] key-files: created: - - .planning/phases/01-workspaces/01-04-SUMMARY.md + - docs/devlog/planning/phases/01-workspaces/01-04-SUMMARY.md modified: [] decisions: [] metrics: diff --git a/.planning/phases/01-workspaces/01-CONTEXT.md b/docs/devlog/planning/phases/01-workspaces/01-CONTEXT.md similarity index 100% rename from .planning/phases/01-workspaces/01-CONTEXT.md rename to docs/devlog/planning/phases/01-workspaces/01-CONTEXT.md diff --git a/.planning/phases/01-workspaces/01-RESEARCH.md b/docs/devlog/planning/phases/01-workspaces/01-RESEARCH.md similarity index 100% rename from .planning/phases/01-workspaces/01-RESEARCH.md rename to docs/devlog/planning/phases/01-workspaces/01-RESEARCH.md diff --git a/.planning/phases/01-workspaces/01-VERIFICATION.md b/docs/devlog/planning/phases/01-workspaces/01-VERIFICATION.md similarity index 98% rename from .planning/phases/01-workspaces/01-VERIFICATION.md rename to docs/devlog/planning/phases/01-workspaces/01-VERIFICATION.md index 8b08b74..c2538d9 100644 --- a/.planning/phases/01-workspaces/01-VERIFICATION.md +++ b/docs/devlog/planning/phases/01-workspaces/01-VERIFICATION.md @@ -31,7 +31,7 @@ Code-level wiring for Phase 01 is complete (UI + Tauri IPC + persistence + root- ## Human Approval Record -- Approved during Phase 01 plan 04 human verification (see `.planning/phases/01-workspaces/01-04-SUMMARY.md`). +- Approved during Phase 01 plan 04 human verification (see `docs/devlog/planning/phases/01-workspaces/01-04-SUMMARY.md`). ### Observable Truths diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-01-PLAN.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-01-PLAN.md similarity index 94% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-01-PLAN.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-01-PLAN.md index 4950105..db78a77 100644 --- a/.planning/phases/02-note-identity-&-sidecar-metadata/02-01-PLAN.md +++ b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-01-PLAN.md @@ -40,9 +40,9 @@ Output: A reusable Rust helper for title extraction + unit tests covering edge c -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md @app/src-tauri/src/domain/workspace.rs @@ -98,5 +98,5 @@ The repo contains a tested, reusable Rust helper that normalizes note titles per -After completion, create `.planning/phases/02-note-identity-&-sidecar-metadata/02-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-01-SUMMARY.md` diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-01-SUMMARY.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-01-SUMMARY.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-01-SUMMARY.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-01-SUMMARY.md diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-02-PLAN.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-PLAN.md similarity index 96% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-02-PLAN.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-PLAN.md index abe037f..a14d085 100644 --- a/.planning/phases/02-note-identity-&-sidecar-metadata/02-02-PLAN.md +++ b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-PLAN.md @@ -52,9 +52,9 @@ Output: Rust note structs, sidecar IO + rebuild logic, and new Tauri commands fo -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md @app/src-tauri/src/domain/note_title.rs @app/src-tauri/src/services/workspace_service.rs @@ -126,5 +126,5 @@ Backend returns note summaries based on root `.md` files, sidecars are created/r -After completion, create `.planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md` diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-03-PLAN.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-03-PLAN.md similarity index 95% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-03-PLAN.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-03-PLAN.md index 4860a1b..bed42f9 100644 --- a/.planning/phases/02-note-identity-&-sidecar-metadata/02-03-PLAN.md +++ b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-03-PLAN.md @@ -51,9 +51,9 @@ Output: Frontend wiring for note summaries, timestamp formatting, and a New Note -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md @app/src/api/workspace.ts @app/src/stores/workspaceStore.ts @@ -122,5 +122,5 @@ The overview list shows correct note titles and timestamps, and users can create -After completion, create `.planning/phases/02-note-identity-&-sidecar-metadata/02-03-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-03-SUMMARY.md` diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-03-SUMMARY.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-03-SUMMARY.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-03-SUMMARY.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-03-SUMMARY.md diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-04-PLAN.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-04-PLAN.md similarity index 91% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-04-PLAN.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-04-PLAN.md index 427a22d..8d7f57a 100644 --- a/.planning/phases/02-note-identity-&-sidecar-metadata/02-04-PLAN.md +++ b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-04-PLAN.md @@ -44,10 +44,10 @@ Output: Updated NoteSidecar serde configuration and tests covering serialization -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/02-note-identity-&-sidecar-metadata/02-note-identity-&-sidecar-metadata-VERIFICATION.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-note-identity-&-sidecar-metadata-VERIFICATION.md @app/src-tauri/src/domain/note.rs @app/src-tauri/src/services/workspace_service.rs @@ -93,5 +93,5 @@ Output: Updated NoteSidecar serde configuration and tests covering serialization -After completion, create `.planning/phases/02-note-identity-&-sidecar-metadata/02-04-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-04-SUMMARY.md` diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-04-SUMMARY.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-04-SUMMARY.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-04-SUMMARY.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-04-SUMMARY.md diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-CONTEXT.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-CONTEXT.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-CONTEXT.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-CONTEXT.md diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-RESEARCH.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-RESEARCH.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-RESEARCH.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-RESEARCH.md diff --git a/.planning/phases/02-note-identity-&-sidecar-metadata/02-note-identity-&-sidecar-metadata-VERIFICATION.md b/docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-note-identity-&-sidecar-metadata-VERIFICATION.md similarity index 100% rename from .planning/phases/02-note-identity-&-sidecar-metadata/02-note-identity-&-sidecar-metadata-VERIFICATION.md rename to docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-note-identity-&-sidecar-metadata-VERIFICATION.md diff --git a/.planning/phases/03-overview-editor-loop/03-01-PLAN.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-01-PLAN.md similarity index 92% rename from .planning/phases/03-overview-editor-loop/03-01-PLAN.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-01-PLAN.md index b261282..5e9b264 100644 --- a/.planning/phases/03-overview-editor-loop/03-01-PLAN.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-01-PLAN.md @@ -40,11 +40,11 @@ Output: A Rust domain helper with tests covering the required edge cases. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/03-overview-editor-loop/03-CONTEXT.md -@.planning/phases/03-overview-editor-loop/03-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-CONTEXT.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-RESEARCH.md @app/src-tauri/src/domain/note.rs @@ -112,5 +112,5 @@ Tests cover indented, blockquote, and fenced code cases and pass for the rewrite -After completion, create `.planning/phases/03-overview-editor-loop/03-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/03-overview-editor-loop/03-01-SUMMARY.md` diff --git a/.planning/phases/03-overview-editor-loop/03-01-SUMMARY.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-01-SUMMARY.md similarity index 95% rename from .planning/phases/03-overview-editor-loop/03-01-SUMMARY.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-01-SUMMARY.md index 72e8f8e..7396726 100644 --- a/.planning/phases/03-overview-editor-loop/03-01-SUMMARY.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-01-SUMMARY.md @@ -83,7 +83,7 @@ Each task was committed atomically: - **Impact:** Enabled test discovery in the domain module. 3. [Rule 3 - Blocking] Summary template path missing in this environment - - **Fix:** Authored `.planning/phases/03-overview-editor-loop/03-01-SUMMARY.md` using the prior phase summary structure. + - **Fix:** Authored `docs/devlog/planning/phases/03-overview-editor-loop/03-01-SUMMARY.md` using the prior phase summary structure. ## Issues Encountered None. diff --git a/.planning/phases/03-overview-editor-loop/03-02-PLAN.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-02-PLAN.md similarity index 93% rename from .planning/phases/03-overview-editor-loop/03-02-PLAN.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-02-PLAN.md index 3131af9..0ee36d0 100644 --- a/.planning/phases/03-overview-editor-loop/03-02-PLAN.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-02-PLAN.md @@ -59,11 +59,11 @@ Output: Tauri commands + frontend API wrapper for note IO. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/03-overview-editor-loop/03-CONTEXT.md -@.planning/phases/03-overview-editor-loop/03-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-CONTEXT.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-RESEARCH.md @app/src-tauri/src/services/workspace_service.rs @app/src-tauri/src/commands/workspace.rs @app/src/api/workspace.ts @@ -122,5 +122,5 @@ Notes can be read, saved atomically (with optional rewrite), and discarded via T -After completion, create `.planning/phases/03-overview-editor-loop/03-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/03-overview-editor-loop/03-02-SUMMARY.md` diff --git a/.planning/phases/03-overview-editor-loop/03-02-SUMMARY.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-02-SUMMARY.md similarity index 96% rename from .planning/phases/03-overview-editor-loop/03-02-SUMMARY.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-02-SUMMARY.md index c0cecde..8fc283d 100644 --- a/.planning/phases/03-overview-editor-loop/03-02-SUMMARY.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-02-SUMMARY.md @@ -93,7 +93,7 @@ Each task was committed atomically: - **Impact:** No repo changes; verification ran in the correct crate. 3. [Rule 3 - Blocking] Summary template path missing in this environment - - **Fix:** Authored `.planning/phases/03-overview-editor-loop/03-02-SUMMARY.md` using the prior phase summary structure. + - **Fix:** Authored `docs/devlog/planning/phases/03-overview-editor-loop/03-02-SUMMARY.md` using the prior phase summary structure. ## Issues Encountered None. diff --git a/.planning/phases/03-overview-editor-loop/03-03-PLAN.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-03-PLAN.md similarity index 93% rename from .planning/phases/03-overview-editor-loop/03-03-PLAN.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-03-PLAN.md index 6d6b16d..78b1020 100644 --- a/.planning/phases/03-overview-editor-loop/03-03-PLAN.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-03-PLAN.md @@ -58,11 +58,11 @@ Output: Editor screen, overview navigation, and UI wiring for the loop. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/03-overview-editor-loop/03-CONTEXT.md -@.planning/phases/03-overview-editor-loop/03-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-CONTEXT.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-RESEARCH.md @app/src/App.tsx @app/src/screens/Overview.tsx @app/src/styles.css @@ -126,5 +126,5 @@ Users can create/open/edit notes with autosave and return to overview without lo -After completion, create `.planning/phases/03-overview-editor-loop/03-03-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/03-overview-editor-loop/03-03-SUMMARY.md` diff --git a/.planning/phases/03-overview-editor-loop/03-03-SUMMARY.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-03-SUMMARY.md similarity index 96% rename from .planning/phases/03-overview-editor-loop/03-03-SUMMARY.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-03-SUMMARY.md index f1a797a..eaa84dd 100644 --- a/.planning/phases/03-overview-editor-loop/03-03-SUMMARY.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-03-SUMMARY.md @@ -90,7 +90,7 @@ Each task was committed atomically: 3. [Rule 3 - Blocking] Summary template path missing in this environment - **Found during:** Summary creation - - **Fix:** Authored `.planning/phases/03-overview-editor-loop/03-03-SUMMARY.md` using the existing summary structure. + - **Fix:** Authored `docs/devlog/planning/phases/03-overview-editor-loop/03-03-SUMMARY.md` using the existing summary structure. ## Issues Encountered None. diff --git a/.planning/phases/03-overview-editor-loop/03-04-PLAN.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-04-PLAN.md similarity index 92% rename from .planning/phases/03-overview-editor-loop/03-04-PLAN.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-04-PLAN.md index 98755a3..3d44b2c 100644 --- a/.planning/phases/03-overview-editor-loop/03-04-PLAN.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-04-PLAN.md @@ -55,11 +55,11 @@ Output: Updated note save error handling in the editor and a corrected backend s -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/03-overview-editor-loop/03-overview-editor-loop-UAT.md -@.planning/phases/03-overview-editor-loop/03-03-SUMMARY.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-overview-editor-loop-UAT.md +@docs/devlog/planning/phases/03-overview-editor-loop/03-03-SUMMARY.md @app/src/screens/Editor.tsx @app/src/api/notes.ts @app/src-tauri/src/commands/notes.rs @@ -107,5 +107,5 @@ Output: Updated note save error handling in the editor and a corrected backend s -After completion, create `.planning/phases/03-overview-editor-loop/03-04-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/03-overview-editor-loop/03-04-SUMMARY.md` diff --git a/.planning/phases/03-overview-editor-loop/03-04-SUMMARY.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-04-SUMMARY.md similarity index 95% rename from .planning/phases/03-overview-editor-loop/03-04-SUMMARY.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-04-SUMMARY.md index 7e4743d..af24e17 100644 --- a/.planning/phases/03-overview-editor-loop/03-04-SUMMARY.md +++ b/docs/devlog/planning/phases/03-overview-editor-loop/03-04-SUMMARY.md @@ -80,7 +80,7 @@ Each task was committed atomically: 2. [Rule 3 - Blocking] Summary template missing in this environment - **Found during:** Summary creation - - **Fix:** Authored `.planning/phases/03-overview-editor-loop/03-04-SUMMARY.md` using the existing summary structure. + - **Fix:** Authored `docs/devlog/planning/phases/03-overview-editor-loop/03-04-SUMMARY.md` using the existing summary structure. ## Issues Encountered - Manual app verification (autosave/exit flow) not run in this session. diff --git a/.planning/phases/03-overview-editor-loop/03-CONTEXT.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-CONTEXT.md similarity index 100% rename from .planning/phases/03-overview-editor-loop/03-CONTEXT.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-CONTEXT.md diff --git a/.planning/phases/03-overview-editor-loop/03-RESEARCH.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-RESEARCH.md similarity index 100% rename from .planning/phases/03-overview-editor-loop/03-RESEARCH.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-RESEARCH.md diff --git a/.planning/phases/03-overview-editor-loop/03-overview-editor-loop-UAT.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-overview-editor-loop-UAT.md similarity index 100% rename from .planning/phases/03-overview-editor-loop/03-overview-editor-loop-UAT.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-overview-editor-loop-UAT.md diff --git a/.planning/phases/03-overview-editor-loop/03-overview-editor-loop-VERIFICATION.md b/docs/devlog/planning/phases/03-overview-editor-loop/03-overview-editor-loop-VERIFICATION.md similarity index 100% rename from .planning/phases/03-overview-editor-loop/03-overview-editor-loop-VERIFICATION.md rename to docs/devlog/planning/phases/03-overview-editor-loop/03-overview-editor-loop-VERIFICATION.md diff --git a/.planning/phases/04-search-tags/04-01-PLAN.md b/docs/devlog/planning/phases/04-search-tags/04-01-PLAN.md similarity index 93% rename from .planning/phases/04-search-tags/04-01-PLAN.md rename to docs/devlog/planning/phases/04-search-tags/04-01-PLAN.md index 4cf9cbf..136bf6c 100644 --- a/.planning/phases/04-search-tags/04-01-PLAN.md +++ b/docs/devlog/planning/phases/04-search-tags/04-01-PLAN.md @@ -48,12 +48,12 @@ Output: Two new Tauri commands exposed to frontend via workspace API. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/04-search-tags/04-CONTEXT.md -@.planning/phases/04-search-tags/04-RESEARCH.md -@.planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md +@docs/devlog/planning/phases/04-search-tags/04-RESEARCH.md +@docs/devlog/planning/phases/02-note-identity-&-sidecar-metadata/02-02-SUMMARY.md @app/src-tauri/src/domain/note.rs @app/src-tauri/src/commands/workspace.rs @app/src-tauri/src/services/workspace_service.rs @@ -158,5 +158,5 @@ Backend command workspace_get_all_tags exists, returns sorted unique tag list fr -After completion, create `.planning/phases/04-search-tags/04-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/04-search-tags/04-01-SUMMARY.md` diff --git a/.planning/phases/04-search-tags/04-01-SUMMARY.md b/docs/devlog/planning/phases/04-search-tags/04-01-SUMMARY.md similarity index 100% rename from .planning/phases/04-search-tags/04-01-SUMMARY.md rename to docs/devlog/planning/phases/04-search-tags/04-01-SUMMARY.md diff --git a/.planning/phases/04-search-tags/04-02-PLAN.md b/docs/devlog/planning/phases/04-search-tags/04-02-PLAN.md similarity index 95% rename from .planning/phases/04-search-tags/04-02-PLAN.md rename to docs/devlog/planning/phases/04-search-tags/04-02-PLAN.md index db103cc..8a3623e 100644 --- a/.planning/phases/04-search-tags/04-02-PLAN.md +++ b/docs/devlog/planning/phases/04-search-tags/04-02-PLAN.md @@ -47,11 +47,11 @@ Output: Search utilities module and tag badges rendering in Overview. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/04-search-tags/04-CONTEXT.md -@.planning/phases/04-search-tags/04-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md +@docs/devlog/planning/phases/04-search-tags/04-RESEARCH.md @app/src/screens/Overview.tsx @app/src/api/workspace.ts @@ -191,5 +191,5 @@ Overview rows display tag pill badges sorted alphabetically, styled as subtle ro -After completion, create `.planning/phases/04-search-tags/04-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/04-search-tags/04-02-SUMMARY.md` diff --git a/.planning/phases/04-search-tags/04-02-SUMMARY.md b/docs/devlog/planning/phases/04-search-tags/04-02-SUMMARY.md similarity index 100% rename from .planning/phases/04-search-tags/04-02-SUMMARY.md rename to docs/devlog/planning/phases/04-search-tags/04-02-SUMMARY.md diff --git a/.planning/phases/04-search-tags/04-03-PLAN.md b/docs/devlog/planning/phases/04-search-tags/04-03-PLAN.md similarity index 97% rename from .planning/phases/04-search-tags/04-03-PLAN.md rename to docs/devlog/planning/phases/04-search-tags/04-03-PLAN.md index 1c7eb15..5e72355 100644 --- a/.planning/phases/04-search-tags/04-03-PLAN.md +++ b/docs/devlog/planning/phases/04-search-tags/04-03-PLAN.md @@ -55,11 +55,11 @@ Output: Functional search bar with keyboard shortcuts and filtered note display. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/04-search-tags/04-CONTEXT.md -@.planning/phases/04-search-tags/04-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md +@docs/devlog/planning/phases/04-search-tags/04-RESEARCH.md @app/src/screens/Overview.tsx @app/src/utils/search.ts @@ -388,5 +388,5 @@ Search state (text and tag filters) lives in App component and persists across O -After completion, create `.planning/phases/04-search-tags/04-03-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/04-search-tags/04-03-SUMMARY.md` diff --git a/.planning/phases/04-search-tags/04-03-SUMMARY.md b/docs/devlog/planning/phases/04-search-tags/04-03-SUMMARY.md similarity index 100% rename from .planning/phases/04-search-tags/04-03-SUMMARY.md rename to docs/devlog/planning/phases/04-search-tags/04-03-SUMMARY.md diff --git a/.planning/phases/04-search-tags/04-04-PLAN.md b/docs/devlog/planning/phases/04-search-tags/04-04-PLAN.md similarity index 97% rename from .planning/phases/04-search-tags/04-04-PLAN.md rename to docs/devlog/planning/phases/04-search-tags/04-04-PLAN.md index 40307a6..1f9cb6d 100644 --- a/.planning/phases/04-search-tags/04-04-PLAN.md +++ b/docs/devlog/planning/phases/04-search-tags/04-04-PLAN.md @@ -55,11 +55,11 @@ Output: Tag editor UI in Editor screen that persists tags to backend. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/04-search-tags/04-CONTEXT.md -@.planning/phases/04-search-tags/04-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md +@docs/devlog/planning/phases/04-search-tags/04-RESEARCH.md @app/src/screens/Editor.tsx @app/src/api/workspace.ts @@ -381,5 +381,5 @@ Editor displays tag PillInput with autocomplete, saves tags to backend on blur, -After completion, create `.planning/phases/04-search-tags/04-04-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/04-search-tags/04-04-SUMMARY.md` diff --git a/.planning/phases/04-search-tags/04-04-SUMMARY.md b/docs/devlog/planning/phases/04-search-tags/04-04-SUMMARY.md similarity index 100% rename from .planning/phases/04-search-tags/04-04-SUMMARY.md rename to docs/devlog/planning/phases/04-search-tags/04-04-SUMMARY.md diff --git a/.planning/phases/04-search-tags/04-05-PLAN.md b/docs/devlog/planning/phases/04-search-tags/04-05-PLAN.md similarity index 95% rename from .planning/phases/04-search-tags/04-05-PLAN.md rename to docs/devlog/planning/phases/04-search-tags/04-05-PLAN.md index ba20f98..f1e38f7 100644 --- a/.planning/phases/04-search-tags/04-05-PLAN.md +++ b/docs/devlog/planning/phases/04-search-tags/04-05-PLAN.md @@ -32,10 +32,10 @@ Output: Human-verified search, filtering, and tag editing functionality. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/04-search-tags/04-CONTEXT.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md @@ -166,5 +166,5 @@ Human confirms: -After completion, create `.planning/phases/04-search-tags/04-05-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/04-search-tags/04-05-SUMMARY.md` diff --git a/.planning/phases/04-search-tags/04-05-SUMMARY.md b/docs/devlog/planning/phases/04-search-tags/04-05-SUMMARY.md similarity index 100% rename from .planning/phases/04-search-tags/04-05-SUMMARY.md rename to docs/devlog/planning/phases/04-search-tags/04-05-SUMMARY.md diff --git a/.planning/phases/04-search-tags/04-CONTEXT.md b/docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md similarity index 100% rename from .planning/phases/04-search-tags/04-CONTEXT.md rename to docs/devlog/planning/phases/04-search-tags/04-CONTEXT.md diff --git a/.planning/phases/04-search-tags/04-RESEARCH.md b/docs/devlog/planning/phases/04-search-tags/04-RESEARCH.md similarity index 100% rename from .planning/phases/04-search-tags/04-RESEARCH.md rename to docs/devlog/planning/phases/04-search-tags/04-RESEARCH.md diff --git a/.planning/phases/04-search-tags/04-VERIFICATION.md b/docs/devlog/planning/phases/04-search-tags/04-VERIFICATION.md similarity index 100% rename from .planning/phases/04-search-tags/04-VERIFICATION.md rename to docs/devlog/planning/phases/04-search-tags/04-VERIFICATION.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-01-PLAN.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-PLAN.md similarity index 93% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-01-PLAN.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-PLAN.md index b55638d..b1a9ff4 100644 --- a/.planning/phases/05-todos-extract,-browse,-toggle/05-01-PLAN.md +++ b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-PLAN.md @@ -43,11 +43,11 @@ Output: Tested TodoItem struct and extract_todos function following TDD red-gree -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md @app/src-tauri/src/domain/note_rewrite.rs @app/src-tauri/src/domain/note.rs @@ -159,5 +159,5 @@ All 10 test cases must pass. No panics, no infinite loops. -After completion, create `.planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md` diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-02-PLAN.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-PLAN.md similarity index 93% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-02-PLAN.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-PLAN.md index b2982a0..4e261c6 100644 --- a/.planning/phases/05-todos-extract,-browse,-toggle/05-02-PLAN.md +++ b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-PLAN.md @@ -44,11 +44,11 @@ Output: Tested toggle_checkbox function following TDD red-green-refactor cycle. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md @app/src-tauri/src/services/workspace_service.rs @app/src-tauri/src/domain/note_rewrite.rs @@ -167,5 +167,5 @@ All 10 toggle test cases must pass. -After completion, create `.planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md` diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-03-PLAN.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-PLAN.md similarity index 94% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-03-PLAN.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-PLAN.md index 08ce059..e916b64 100644 --- a/.planning/phases/05-todos-extract,-browse,-toggle/05-03-PLAN.md +++ b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-PLAN.md @@ -43,11 +43,11 @@ Output: Tested groupTodosByTags function following TDD red-green-refactor cycle. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md @app/src/utils/search.ts @@ -191,5 +191,5 @@ All 10 test cases must pass. -After completion, create `.planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md` diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-04-PLAN.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-PLAN.md similarity index 94% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-04-PLAN.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-PLAN.md index c70686a..e5cbedc 100644 --- a/.planning/phases/05-todos-extract,-browse,-toggle/05-04-PLAN.md +++ b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-PLAN.md @@ -52,13 +52,13 @@ Output: Working list_todos and toggle_todo commands with TypeScript wrappers. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-01-SUMMARY.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-02-SUMMARY.md @app/src-tauri/src/commands/notes.rs @app/src-tauri/src/commands/workspace.rs @app/src-tauri/src/services/workspace_service.rs @@ -335,5 +335,5 @@ Frontend API wrappers listTodos and toggleTodo exist with correct types. npm bui -After completion, create `.planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md` diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-05-PLAN.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-PLAN.md similarity index 95% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-05-PLAN.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-PLAN.md index 97274ea..23a9dd9 100644 --- a/.planning/phases/05-todos-extract,-browse,-toggle/05-05-PLAN.md +++ b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-PLAN.md @@ -56,13 +56,13 @@ Output: Working TodoList screen accessible from Overview via T key. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-03-SUMMARY.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-04-SUMMARY.md @app/src/screens/Overview.tsx @app/src/App.tsx @app/src/components/Toast.tsx @@ -435,5 +435,5 @@ TodoList styles added to styles.css. Build passes. -After completion, create `.planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md` diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-06-PLAN.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-06-PLAN.md similarity index 94% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-06-PLAN.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-06-PLAN.md index 7f5b1fa..b5dc336 100644 --- a/.planning/phases/05-todos-extract,-browse,-toggle/05-06-PLAN.md +++ b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-06-PLAN.md @@ -33,11 +33,11 @@ Output: Verified working todo list meeting all acceptance criteria. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md -@.planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md +@docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-05-SUMMARY.md @@ -162,5 +162,5 @@ All Phase 5 requirements (TODO-01 through TODO-06) are verified through manual t -After completion, create `.planning/phases/05-todos-extract,-browse,-toggle/05-06-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-06-SUMMARY.md` diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-06-SUMMARY.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-06-SUMMARY.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-06-SUMMARY.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-06-SUMMARY.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-CONTEXT.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-RESEARCH.md diff --git a/.planning/phases/05-todos-extract,-browse,-toggle/05-VERIFICATION.md b/docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-VERIFICATION.md similarity index 100% rename from .planning/phases/05-todos-extract,-browse,-toggle/05-VERIFICATION.md rename to docs/devlog/planning/phases/05-todos-extract,-browse,-toggle/05-VERIFICATION.md diff --git a/.planning/phases/06-soft-delete/06-01-PLAN.md b/docs/devlog/planning/phases/06-soft-delete/06-01-PLAN.md similarity index 96% rename from .planning/phases/06-soft-delete/06-01-PLAN.md rename to docs/devlog/planning/phases/06-soft-delete/06-01-PLAN.md index 577b5e9..6cc63e2 100644 --- a/.planning/phases/06-soft-delete/06-01-PLAN.md +++ b/docs/devlog/planning/phases/06-soft-delete/06-01-PLAN.md @@ -47,10 +47,10 @@ Output: Tauri command `note_delete` that moves note files with conflict handling -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/06-soft-delete/06-CONTEXT.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/06-soft-delete/06-CONTEXT.md @app/src-tauri/src/commands/notes.rs @app/src-tauri/src/services/workspace_service.rs @@ -196,5 +196,5 @@ Backend delete functionality complete when: -After completion, create `.planning/phases/06-soft-delete/06-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/06-soft-delete/06-01-SUMMARY.md` diff --git a/.planning/phases/06-soft-delete/06-01-SUMMARY.md b/docs/devlog/planning/phases/06-soft-delete/06-01-SUMMARY.md similarity index 100% rename from .planning/phases/06-soft-delete/06-01-SUMMARY.md rename to docs/devlog/planning/phases/06-soft-delete/06-01-SUMMARY.md diff --git a/.planning/phases/06-soft-delete/06-02-PLAN.md b/docs/devlog/planning/phases/06-soft-delete/06-02-PLAN.md similarity index 97% rename from .planning/phases/06-soft-delete/06-02-PLAN.md rename to docs/devlog/planning/phases/06-soft-delete/06-02-PLAN.md index 033b9f6..6b688d4 100644 --- a/.planning/phases/06-soft-delete/06-02-PLAN.md +++ b/docs/devlog/planning/phases/06-soft-delete/06-02-PLAN.md @@ -59,15 +59,15 @@ Output: Complete delete UX in Overview screen with confirmation, animation, and -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/06-soft-delete/06-CONTEXT.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/06-soft-delete/06-CONTEXT.md @app/src/screens/Overview.tsx @app/src/api/workspace.ts @app/src/index.css -@.planning/phases/06-soft-delete/06-01-SUMMARY.md +@docs/devlog/planning/phases/06-soft-delete/06-01-SUMMARY.md @@ -367,5 +367,5 @@ Frontend delete UX complete when: -After completion, create `.planning/phases/06-soft-delete/06-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/06-soft-delete/06-02-SUMMARY.md` diff --git a/.planning/phases/06-soft-delete/06-02-SUMMARY.md b/docs/devlog/planning/phases/06-soft-delete/06-02-SUMMARY.md similarity index 100% rename from .planning/phases/06-soft-delete/06-02-SUMMARY.md rename to docs/devlog/planning/phases/06-soft-delete/06-02-SUMMARY.md diff --git a/.planning/phases/06-soft-delete/06-CONTEXT.md b/docs/devlog/planning/phases/06-soft-delete/06-CONTEXT.md similarity index 100% rename from .planning/phases/06-soft-delete/06-CONTEXT.md rename to docs/devlog/planning/phases/06-soft-delete/06-CONTEXT.md diff --git a/.planning/phases/06-soft-delete/06-VERIFICATION.md b/docs/devlog/planning/phases/06-soft-delete/06-VERIFICATION.md similarity index 100% rename from .planning/phases/06-soft-delete/06-VERIFICATION.md rename to docs/devlog/planning/phases/06-soft-delete/06-VERIFICATION.md diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-01-PLAN.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-01-PLAN.md similarity index 93% rename from .planning/phases/07-rebuildability-ui-fidelity/07-01-PLAN.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-01-PLAN.md index a00bc3b..3638fce 100644 --- a/.planning/phases/07-rebuildability-ui-fidelity/07-01-PLAN.md +++ b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-01-PLAN.md @@ -49,11 +49,11 @@ Output: Rust rebuild routine, rebuild log format, and commands to run/read logs. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md -@.planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md +@docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md @app/src-tauri/src/services/workspace_service.rs @app/src-tauri/src/commands/workspace.rs @app/src-tauri/src/domain/note.rs @@ -117,5 +117,5 @@ Output: Rust rebuild routine, rebuild log format, and commands to run/read logs. -After completion, create `.planning/phases/07-rebuildability-ui-fidelity/07-01-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-01-SUMMARY.md` diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-01-SUMMARY.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-01-SUMMARY.md similarity index 100% rename from .planning/phases/07-rebuildability-ui-fidelity/07-01-SUMMARY.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-01-SUMMARY.md diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-02-PLAN.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-02-PLAN.md similarity index 93% rename from .planning/phases/07-rebuildability-ui-fidelity/07-02-PLAN.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-02-PLAN.md index dbfd21d..d45af69 100644 --- a/.planning/phases/07-rebuildability-ui-fidelity/07-02-PLAN.md +++ b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-02-PLAN.md @@ -50,10 +50,10 @@ Output: UI modal + API bindings for rebuild log retrieval. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md @app/src/App.tsx @app/src/api/workspace.ts @app/src/styles.css @@ -105,5 +105,5 @@ Output: UI modal + API bindings for rebuild log retrieval. -After completion, create `.planning/phases/07-rebuildability-ui-fidelity/07-02-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-02-SUMMARY.md` diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-02-SUMMARY.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-02-SUMMARY.md similarity index 100% rename from .planning/phases/07-rebuildability-ui-fidelity/07-02-SUMMARY.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-02-SUMMARY.md diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-03-PLAN.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-PLAN.md similarity index 88% rename from .planning/phases/07-rebuildability-ui-fidelity/07-03-PLAN.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-PLAN.md index 83f022c..0acaabb 100644 --- a/.planning/phases/07-rebuildability-ui-fidelity/07-03-PLAN.md +++ b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-PLAN.md @@ -14,7 +14,7 @@ files_modified: - app/src/components/PillInput.tsx - app/src/components/TagAutocomplete.tsx - app/src/components/Toast.tsx - - FIGMA-DEVIATIONS.md + - docs/design/FIGMA-DEVIATIONS.md autonomous: true must_haves: truths: @@ -26,7 +26,7 @@ must_haves: provides: "Global design tokens + component styling" - path: "app/src/screens/Editor.tsx" provides: "Editor layout hooks for responsive column" - - path: "FIGMA-DEVIATIONS.md" + - path: "docs/design/FIGMA-DEVIATIONS.md" provides: "Documented intentional deviations" key_links: - from: "app/src/styles.css" @@ -52,10 +52,10 @@ Output: Tokenized styles, responsive editor layout, and Figma deviation notes. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md @app/src/styles.css @app/src/screens/Editor.tsx @app/src/screens/Overview.tsx @@ -111,13 +111,13 @@ Output: Tokenized styles, responsive editor layout, and Figma deviation notes. app/src/components/PillInput.tsx app/src/components/TagAutocomplete.tsx app/src/components/Toast.tsx - FIGMA-DEVIATIONS.md + docs/design/FIGMA-DEVIATIONS.md - Compare Overview, Editor, Todo List, and Workspaces screens to Figma and adjust spacing, typography, colors, and component states (buttons, inputs, list rows) to closely match. Only change markup if required to match Figma. Record any intentional deviations (with reason) in `FIGMA-DEVIATIONS.md` using a short bullet list per screen. + Compare Overview, Editor, Todo List, and Workspaces screens to Figma and adjust spacing, typography, colors, and component states (buttons, inputs, list rows) to closely match. Only change markup if required to match Figma. Record any intentional deviations (with reason) in `docs/design/FIGMA-DEVIATIONS.md` using a short bullet list per screen. - Visual diff against Figma shows close match; deviations are documented in `FIGMA-DEVIATIONS.md`. + Visual diff against Figma shows close match; deviations are documented in `docs/design/FIGMA-DEVIATIONS.md`. UI matches Figma with documented exceptions and consistent tokens across screens. @@ -129,7 +129,7 @@ Output: Tokenized styles, responsive editor layout, and Figma deviation notes. - CSS variables are used consistently across app surfaces. - Editor column remains centered and readable at small and large window sizes. -- `FIGMA-DEVIATIONS.md` lists any deliberate mismatches. +- `docs/design/FIGMA-DEVIATIONS.md` lists any deliberate mismatches. @@ -137,5 +137,5 @@ Output: Tokenized styles, responsive editor layout, and Figma deviation notes. -After completion, create `.planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md` diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md similarity index 93% rename from .planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md index 23ca7f4..9f7df9c 100644 --- a/.planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md +++ b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-03-SUMMARY.md @@ -20,7 +20,7 @@ tech-stack: patterns: [css-token-first theming, responsive editor column] key-files: - created: [FIGMA-DEVIATIONS.md] + created: [docs/design/FIGMA-DEVIATIONS.md] modified: [app/src/styles.css, app/src/screens/Editor.tsx] key-decisions: @@ -65,7 +65,7 @@ Each task was committed atomically: ## Files Created/Modified - `app/src/styles.css` - centralized tokens and shared component styling - `app/src/screens/Editor.tsx` - wraps editor textarea in responsive column -- `FIGMA-DEVIATIONS.md` - records Figma review gaps and intended checks +- `docs/design/FIGMA-DEVIATIONS.md` - records Figma review gaps and intended checks ## Decisions Made None - followed plan as specified. @@ -77,7 +77,7 @@ None - followed plan as specified. **1. Figma reference unavailable during execution** - **Found during:** Task 3 (Figma alignment) - **Issue:** No Figma frames or links were available in the execution context. -- **Impact:** Visual diff and alignment could not be verified; documented in `FIGMA-DEVIATIONS.md` for follow-up. +- **Impact:** Visual diff and alignment could not be verified; documented in `docs/design/FIGMA-DEVIATIONS.md` for follow-up. --- diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-04-PLAN.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-04-PLAN.md similarity index 82% rename from .planning/phases/07-rebuildability-ui-fidelity/07-04-PLAN.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-04-PLAN.md index 771798d..aaca7b5 100644 --- a/.planning/phases/07-rebuildability-ui-fidelity/07-04-PLAN.md +++ b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-04-PLAN.md @@ -14,7 +14,7 @@ must_haves: - "User confirms rebuild works after deleting .ponder and notes remain unchanged" - "User confirms UI matches Figma and responsive editor behaves correctly" artifacts: - - path: "FIGMA-DEVIATIONS.md" + - path: "docs/design/FIGMA-DEVIATIONS.md" provides: "Documented intentional UI differences" key_links: - from: "View rebuild log action" @@ -36,11 +36,11 @@ Output: Human verification of rebuild and Figma alignment. -@.planning/PROJECT.md -@.planning/ROADMAP.md -@.planning/STATE.md -@.planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md -@FIGMA-DEVIATIONS.md +@docs/devlog/planning/PROJECT.md +@docs/devlog/planning/ROADMAP.md +@docs/devlog/planning/STATE.md +@docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md +@docs/design/FIGMA-DEVIATIONS.md @@ -53,7 +53,7 @@ Output: Human verification of rebuild and Figma alignment. 3) Relaunch the app and confirm: notes list loads, todos still appear, and note contents are unchanged. 4) Click "View rebuild log" and confirm the summary looks correct; click "Open log file" to open the JSON log. 5) Resize the window narrow and wide and verify the editor column stays centered with readable line length and fluid font size. - 6) Compare Overview/Editor/Todo List/Workspaces to Figma; confirm alignment or list deviations in `FIGMA-DEVIATIONS.md`. + 6) Compare Overview/Editor/Todo List/Workspaces to Figma; confirm alignment or list deviations in `docs/design/FIGMA-DEVIATIONS.md`. Type "approved" or describe issues @@ -69,5 +69,5 @@ Output: Human verification of rebuild and Figma alignment. -After completion, create `.planning/phases/07-rebuildability-ui-fidelity/07-04-SUMMARY.md` +After completion, create `docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-04-SUMMARY.md` diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md similarity index 100% rename from .planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-CONTEXT.md diff --git a/.planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md similarity index 99% rename from .planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md rename to docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md index 151868b..8bb1b1d 100644 --- a/.planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md +++ b/docs/devlog/planning/phases/07-rebuildability-ui-fidelity/07-RESEARCH.md @@ -245,7 +245,7 @@ fn atomic_write(path: &std::path::Path, payload: &str) -> std::io::Result<()> { - https://docs.rs/tempfile/latest/tempfile/struct.NamedTempFile.html - Atomic temp file persistence ### Secondary (MEDIUM confidence) -- `.planning/research/ARCHITECTURE.md` - Project guidance on rebuildable derived state and `.ponder/index` +- `docs/devlog/planning/research/ARCHITECTURE.md` - Project guidance on rebuildable derived state and `.ponder/index` - `app/package.json` + `app/src-tauri/Cargo.toml` - Stack versions in use ### Tertiary (LOW confidence) diff --git a/.planning/research/ARCHITECTURE.md b/docs/devlog/planning/research/ARCHITECTURE.md similarity index 100% rename from .planning/research/ARCHITECTURE.md rename to docs/devlog/planning/research/ARCHITECTURE.md diff --git a/.planning/research/FEATURES.md b/docs/devlog/planning/research/FEATURES.md similarity index 100% rename from .planning/research/FEATURES.md rename to docs/devlog/planning/research/FEATURES.md diff --git a/.planning/research/PITFALLS.md b/docs/devlog/planning/research/PITFALLS.md similarity index 100% rename from .planning/research/PITFALLS.md rename to docs/devlog/planning/research/PITFALLS.md diff --git a/.planning/research/STACK.md b/docs/devlog/planning/research/STACK.md similarity index 100% rename from .planning/research/STACK.md rename to docs/devlog/planning/research/STACK.md diff --git a/.planning/research/SUMMARY.md b/docs/devlog/planning/research/SUMMARY.md similarity index 100% rename from .planning/research/SUMMARY.md rename to docs/devlog/planning/research/SUMMARY.md diff --git a/docs/screenshots/Editor-Editing.webp b/docs/screenshots/Editor-Editing.webp new file mode 100644 index 0000000..5a20294 Binary files /dev/null and b/docs/screenshots/Editor-Editing.webp differ diff --git a/docs/screenshots/Editor-Preview.webp b/docs/screenshots/Editor-Preview.webp new file mode 100644 index 0000000..6156c17 Binary files /dev/null and b/docs/screenshots/Editor-Preview.webp differ diff --git a/docs/screenshots/Overview.webp b/docs/screenshots/Overview.webp new file mode 100644 index 0000000..6c88e94 Binary files /dev/null and b/docs/screenshots/Overview.webp differ diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md new file mode 100644 index 0000000..656814c --- /dev/null +++ b/docs/screenshots/README.md @@ -0,0 +1,22 @@ +# README Screenshots + +Store README screenshots in this folder. + +## Recommended conventions + +- Prefer `webp` for UI screenshots (`png` only if needed for quality). +- Keep filenames lowercase and descriptive, for example: + - `overview-main.webp` + - `editor-markdown-preview.webp` + - `todos-grouped-by-tag.webp` +- Use one scale consistently (for example 2x Retina captures). +- Keep each file reasonably small (target: under 500 KB when possible). +- Avoid sensitive data in screenshots. + +## Markdown usage + +Use repository-relative links in `README.md`, for example: + +```md +![Overview screen](docs/screenshots/overview-main.webp) +``` diff --git a/docs/screenshots/Todo-List.webp b/docs/screenshots/Todo-List.webp new file mode 100644 index 0000000..1f40217 Binary files /dev/null and b/docs/screenshots/Todo-List.webp differ diff --git a/color-generator/index.html b/docs/tools/color-generator/index.html similarity index 100% rename from color-generator/index.html rename to docs/tools/color-generator/index.html diff --git a/color-generator/oklch-playground-params.html b/docs/tools/color-generator/oklch-playground-params.html similarity index 100% rename from color-generator/oklch-playground-params.html rename to docs/tools/color-generator/oklch-playground-params.html diff --git a/color-generator/oklch-playground.html b/docs/tools/color-generator/oklch-playground.html similarity index 100% rename from color-generator/oklch-playground.html rename to docs/tools/color-generator/oklch-playground.html diff --git a/color-generator/themes/light.json b/docs/tools/color-generator/themes/light.json similarity index 100% rename from color-generator/themes/light.json rename to docs/tools/color-generator/themes/light.json diff --git a/flake.nix b/flake.nix index ecf0be3..7e07895 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Dev shell for Tauri + Svelte (macOS)"; + description = "Dev shell for Tauri + React (macOS)"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; @@ -29,4 +29,4 @@ ''; }; }; -} \ No newline at end of file +} diff --git a/opencode.json b/opencode.json deleted file mode 100644 index cf11dc7..0000000 --- a/opencode.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "https://opencode.ai/config.json", - "mcp": { - "figma_desktop": { - "type": "remote", - "url": "http://127.0.0.1:3845/mcp", - "enabled": true - } - } - } \ No newline at end of file