Commit Graph

31 Commits

Author SHA1 Message Date
xarmian a03b6d7bf8 Fix svelte-check type error in MermaidCodeBlock NodeView
Cast the NodeView factory return to `any` to satisfy the
CodeBlockOptions type constraint in strict mode.
2026-03-28 00:48:53 +00:00
xarmian dbecb741c6 Add workspace export/import and fix create workspace modal
Export/Import:
- `pad export -o file.json` exports workspace (collections, items,
  comments, links, versions) to portable JSON
- `pad import file.json --name X` creates new workspace with
  regenerated UUIDs and remapped relations
- GET /workspaces/{slug}/export and POST /workspaces/import endpoints
- "Download JSON" button in workspace settings
- Import tab with drag-and-drop in the create workspace modal
- Full transaction wrapping for atomic imports

Create Workspace Modal:
- Extracted from sidebar dropdown into a proper centered modal
  (sidebar's CSS transform was trapping fixed-position elements)
- Rendered at root layout level via uiStore flag
- Create and Import tabs with template picker and file drop zone
2026-03-28 00:25:04 +00:00
xarmian 222d2a1b80 Add table view for collections (IDEA-25)
Spreadsheet-style third view option alongside list and board. Sortable
columns for all schema fields, clickable status cycling, inline progress
bars, resolved relation labels, sticky header, and horizontal scroll.
Persisted per-collection in localStorage, configurable as default view.
2026-03-27 23:51:13 +00:00
xarmian a8059c5a0f Implement 8 ideas from the idea board
Quick wins:
- IDEA-31: URL autolink + link popover in editor (SafeLink with data-href
  prevents mobile navigation, popover shows open/edit/remove actions)
- IDEA-36: Focus title on new item creation, Enter moves to editor
- IDEA-38: Add `pad link` CLI command to link directory to existing workspace
- IDEA-34: Show checklist progress bar on item cards (parses markdown checkboxes)
- IDEA-28: Workspace rename (already existed in settings)

Medium effort:
- IDEA-33: Drag-and-drop task reordering in Phase documents via svelte-dnd-action
- IDEA-26: Archive collections (frontend wiring — backend already supported soft delete)
- IDEA-29: Archive workspaces with danger zone confirmation in settings
- IDEA-37: Raw markdown editor toggle + inline Mermaid diagram rendering
  (NodeView with ignoreMutation to prevent ProseMirror re-parse loops)
2026-03-27 23:41:20 +00:00
xarmian d318ecf7fc Add workspace onboarding: CLI hints, web checklist, codebase detection, and relation field fix
- Print suggested /pad prompts after `pad init` creates a new workspace
- Add `pad onboard` command that detects project tooling (language, build system,
  test runner, CI, linter) and suggests matching conventions from the library
- Replace empty workspace welcome box with OnboardingChecklist component showing
  a 4-step guided setup with progress bar and /pad prompt hints
- Add contextual tips with /pad prompts to empty collection states
- Add onboarding workflow to /pad skill for agent-driven codebase analysis
- Fix relation fields storing slugs instead of UUIDs: server now resolves
  slugs/refs to UUIDs for relation-type fields on both create and update
2026-03-27 19:33:18 +00:00
xarmian 14fe7fd631 Fix CI: create web build placeholder for Go embed in test and vet jobs
The go:embed directive requires web/build/* to exist. Go test and vet jobs
run without building the web UI, so create a minimal placeholder directory
to satisfy the embed pattern.
2026-03-27 03:35:55 +00:00
xarmian 9a590dc580 Fix SQLITE_BUSY on drag-and-drop by sequencing API calls and using item IDs
Status change and sort order updates were firing concurrently, causing
SQLITE_BUSY errors. Now handleFinalize awaits the status change before
sending reorder updates. Switched all frontend API calls from item.slug
to item.id (UUID). Added UUID support to ResolveItem in the store layer.
2026-03-27 02:09:14 +00:00
xarmian a6d08fdd7e Add Quick Actions — contextual prompt buttons that copy agent commands to clipboard
New QuickAction type in collection settings lets users define prompt templates
with variables ({ref}, {title}, {status}, etc.) that resolve at click time.
Lightning bolt menu appears on item detail and collection pages. Includes
default actions for Tasks, Ideas, Phases, and Docs collections. Fully
customizable via new Quick Actions tab in EditCollectionModal.
2026-03-27 01:56:31 +00:00
xarmian e20b84fe90 Fix board column reordering with native HTML5 drag-and-drop
Replace nested svelte-dnd-action zones (which treated the whole board as one
drop target) with native HTML5 drag events on column headers. Source column
fades during drag, blue left-border indicates drop position. Card drag-and-drop
within/between columns still uses svelte-dnd-action.
2026-03-27 01:24:41 +00:00
xarmian 7ba69abb88 Misc improvements: CLI field summaries, editor enhancements, CI and UI polish
Show field summary after create/update CLI commands. Make svelte-check
blocking in CI. Improve editor block handling, field editor layout,
conventions page, and minor UI consistency fixes across pages.
2026-03-27 01:13:07 +00:00
xarmian 3cf2522411 Add drag-and-drop column and group reordering for board and list views
Board columns and list groups can now be reordered by dragging their headers.
New order persists by updating the collection schema's field options array.
Column names remain left-aligned with drag handle on hover.
2026-03-27 01:12:58 +00:00
xarmian 880521c719 Add extract-to-item bubble menu for creating linked items from text selections
Select text in the editor to see a floating "Extract" button. Clicking it
opens an inline form to pick a collection and edit the title, then creates
the item and replaces the selection with a [[wiki-link]]. Full selected text
is included as item content when the title is edited shorter.
2026-03-27 00:55:50 +00:00
xarmian 0506051495 Show full timestamps on hover for all relative time displays
Added title attributes with localized timestamps to every relativeTime()
display: item detail meta, item cards, dashboard activity, activity feed,
comments, and version history.
2026-03-27 00:06:00 +00:00
xarmian c9e3d757e7 Use item refs instead of slugs in remaining navigation URLs
Fixed collection page new-item creation, new item form, and playbooks edit
button to use itemUrlId() for consistent PREFIX-NUMBER URLs.
2026-03-26 23:57:58 +00:00
xarmian 7c0514eacc Redesign sidebar with section headers and fix slug collision with deleted items
Sidebar now has "Collections" and "Agent" section headers with visual
distinction. Drag handles appear on hover for reorderable collections.
Also fixed uniqueSlug to check all rows including soft-deleted when
generating slugs, preventing UNIQUE constraint violations when creating
items with names matching archived items.
2026-03-26 23:55:47 +00:00
xarmian c6d154a117 Add archive functionality with bulk archive and show-archived toggle
Board columns and list groups now show an archive icon on hover with inline
confirmation to bulk-archive all items in a group. Collection page has a
"Show archived" checkbox that loads archived items via include_archived param.
Restore handler wired up for restoring individual archived items.
2026-03-26 23:49:34 +00:00
xarmian 49a35ef1c0 Overhaul EditCollectionModal with tabbed layout and wider design
Reorganized the modal into three tabs (General, Fields, Display) at 680px
width. General tab has name/icon/description/prefix. Fields tab has improved
field cards with key identifiers and a cleaner add-field section. Display tab
uses a two-column grid for settings. Fixed scroll containment so footer stays
pinned while tab content scrolls.
2026-03-26 23:38:23 +00:00
xarmian 158488f31a Add collection display settings UI for default view, layout, and grouping
EditCollectionModal now includes a Display section with controls for: default
view (list/board), item layout (balanced/fields-primary/content-primary), board
and list group-by fields (populated from select fields), and list sort-by field.
Settings are saved alongside schema changes in the same PATCH request.
2026-03-26 23:24:43 +00:00
xarmian 9918dfe322 Change item URLs to use PREFIX-NUMBER refs instead of slugs
URLs now use collection prefix + item number (e.g. /ideas/IDEA-15) instead of
long slugs. Backend ResolveItem() accepts either format for backwards compat —
old slug-based URLs and bookmarks still work. Updated all frontend link
generation (item cards, sidebar, search, wiki-links) to use refs.
2026-03-26 23:19:44 +00:00
xarmian b8aab7a37d Add collection template library with pre-built schemas for common use cases
CreateCollectionModal now shows a template picker as the first step with 8
templates: Bug Tracker, Feature Requests, Meeting Notes, Decisions, Tech Debt,
OKRs, Sprint Backlog, and Knowledge Base. Selecting a template pre-fills name,
icon, description, fields, and settings. A "Blank" option starts from scratch.
2026-03-26 23:10:05 +00:00
xarmian 203080fde1 Implement mutable collection schemas with field editing and option rename migration
Redesigned the EditCollectionModal to support full schema evolution: editable
field labels, delete fields, reorder with up/down buttons, and per-option
chip editing for select/multi_select fields. When select options are renamed,
a bulk migration updates all existing items via SQLite json_set/json_extract.
2026-03-26 23:00:23 +00:00
xarmian b3909b13ee Add 'implemented' status option to Ideas collection schema
Adds migration for existing workspaces and updates the default definition
for new workspaces.
2026-03-26 22:30:19 +00:00
xarmian 82e159ffc6 Add delete item button with inline confirmation to item detail page
Two-stage delete: click Delete, then confirm Yes/No. Soft-deletes the item
and redirects back to the collection list.
2026-03-26 22:27:05 +00:00
xarmian b17c7ad3aa Remove redundant Library sidebar link and fix board column drag-and-drop height
Library link was accessible from Conventions/Playbooks pages already. Board
columns now stretch to match the tallest column so items can be dragged to
any column when scrolled down.
2026-03-26 21:31:52 +00:00
xarmian f3d66925bc Add Pad icon as favicon, PWA icons, and social metadata
Generate favicon sizes (16, 32, ico), Apple touch icon (180),
PWA icons (192, 512), and web manifest from padicon.png. Add
Open Graph meta tags for social sharing previews.
2026-03-26 18:30:31 +00:00
xarmian 2ad8e1a6b2 Fix uncategorized items missing from list view, replace toast spam with save indicator
ListView: items with empty group field values now appear in an
"Uncategorized" group at the bottom instead of being silently dropped.

Detail page: field and title updates now show the subtle "Saving..."
→ "✓ Saved" status indicator instead of firing toast notifications
on every change. Toasts are reserved for errors only.
2026-03-26 02:12:55 +00:00
xarmian c8699b555a Notion-style item creation: instant create and edit in place
Clicking "+ New Item" now immediately creates a blank item with
default fields and navigates to its detail page with the title
input focused and selected, ready to type. No more separate
creation form — creating and editing an item are the same
experience. Both the collection page button and sidebar button
use this flow.
2026-03-26 02:08:09 +00:00
xarmian 6d23cb986f Fix effect_update_depth_exceeded when editing field types
The infinite loop was caused by bind:value on a dynamic key of a
$state proxy Record (existingOptionsText[field.key]). Replaced with
_optionsText stored directly on each field object, avoiding the
proxy key-access reactivity cycle.
2026-03-26 02:02:10 +00:00
xarmian cc5f7ec20f Fix inconsistent input heights in FieldEditor
Add min-height: 30px to .field-input and .select-trigger so inputs
without placeholders match the height of selects and populated inputs.
2026-03-26 02:00:25 +00:00
xarmian 757f500ed8 Fix field type editing and show all fields on item creation page
Fix infinite loop when changing a field's type in Edit Collection
modal — existingOptionsText now initializes entries for all fields.

New item creation page now shows all editable schema fields (priority,
category, assignee, phase, etc.) using FieldEditor components, not
just status. Fields reset when switching collections.
2026-03-26 01:57:31 +00:00
xarmian 81579847c6 Initial release
Pad — project management for developers and AI agents.
Single Go binary with embedded SvelteKit web UI, SQLite storage,
CLI, and Claude Code /pad skill integration.

https://getpad.dev
2026-03-26 01:52:36 +00:00