Recent Amplenote Progress
The latest and greatest features from Amplenote web, desktop and mobile
By Code Domain
The types of code that have generated the most Diff Delta
tl;dr Summary
August 4, 2026
- Fix Goal Coach returning completed or duplicate tasks; Add domain-specific quarterly plan resolution
- Allow choosing root folders to import from on desktop
- Add desktop widget-focus expansion and refine focus/offscreen scaling in focus-widget.js
August 3, 2026
- Add Note Peek dashboard widget to display rendered contents of a chosen note
August 2, 2026
- Fix reuse of stale proposed-agenda cache by adding recommendationContextKey context fingerprinting
July 31, 2026
- Add 'Swap background' quick action and useBackgroundSwap hook with preloaded, session-only cross-fade
July 29, 2026
- Add 'stop' link and manual stop handling to NoteAgent for parity with DeepResearchAgent
July 21, 2026
- Add admin heap-measurement popup, memory-sampling helpers, and DASHBOARD_WIDGET_LOADED reporting
July 12, 2026
- Add v1 Provider Bubble Map to feature_showdowns#show
July 11, 2026
- Allow Quick Open to match note names when query words are reordered
- Add more obvious "Guess" button for note guesser on Add Task popup
- Update fuzzy matching: allow partial title-word+tag matches, support word reordering, prefer recent task notes
July 9, 2026
- Add per-feature app counts and 'only app' designation in comparison table
July 8, 2026
- Add byline to Feature Showdowns to give pages a more editorial feel
July 7, 2026
- Add v2 home page partial
July 6, 2026
- Add ProviderAppReviewsController to allow reviewing apps when logged in
- Allow user login via LinkedIn to prep for enabling reviews
- Improve 'Complete' response handling and update prompt parameterization
Add Agent Pro voting UI and harden AccountStatusBanner visibility checks
Adds Agent Pro voting UI and tightens banner visibility logic in app/javascript/components/account-status-banner.js. Introduces hasAgentProSubscription prop, VISIBILITY_CHECK_INTERVAL, _visibilityTimer and renderKey state (used as PortalContainer key and in shouldComponentUpdate). Starts periodic DOM visibility checks and clears timers on unmount to avoid spurious re-renders and banner tampering; enables Agent Pro voting in production.
Deployed July 6
Worked on from June 28 through July 4 in alloy-org/ample-web
600 Δ
Add image optimization using Tinify (via Plausible proxy) for embedded note images
Introduce optimizeImage (lib/functions/image-optimizer.js) and tests (test/image-optimizer.test.js). The new action sends a note's embedded image to a Tinify shrink endpoint (defaults to a Plausible proxy), downloads the optimized bytes, replaces the note image in-place, and alerts the user with byte and percent savings. Tests call Tinify directly when an API key is present. Result: smaller images, reduced storage and bandwidth.
Awaiting deploy
Worked July 3 in alloy-org/ample-agent-pro
100 Δ
Add Proposed Agenda next-day scheduling when it's late in the current day
Update the Proposed Agenda plugin to propose schedule dates on the following day when the current day is too late. Adds proposed-agenda-next-day.test.js and moves relevant logic from the proposed-agenda service to cover this case. Impact: prevents invalid or missing today-time suggestions and provides sensible next-day proposals for users.
Awaiting deploy
Worked June 30 in alloy-org/dashboard-plugin
200 Δ
Add minute-aware clock labels, expose proposed-agenda in dashboards, increase shared-notes MAX_SCAN to 1000
Adds minute-aware clock labeling (formatClockLabel(totalMinutes, timeFormat)) in lib/util/date-utility.js so times render minute-accurate AM/PM and 24h values (e.g. 570 → 9:30 AM). Exposes proposed-agenda in dashboard layout profiles and adjusts widget ordering/sizes to surface agendas. Increases shared-notes MAX_SCAN to 1000 in lib/shared-notes-service.js to broaden discovery — yielding finer time precision, improved agenda visibility, and better shared-note discovery.
Awaiting deploy
Worked June 28 in alloy-org/dashboard-plugin
400 Δ
Add person filtering and pagination to shared notes; annotate person-note index build time
Updates the shared-notes component (styles and tests updated) to support filtering notes by person and paginated results. Also annotates the person-note index with a build timestamp to record when the index was created. Impact: enables per-person note views, reduces payloads via pagination, and improves index management and troubleshooting.
Awaiting deploy
Worked June 28 in alloy-org/dashboard-plugin
200 Δ
Fix: prevent layout config popup from appearing outside visible viewport
Ensure the dashboard config popup is positioned inside the visible viewport. Adjusted popup positioning logic in lib/dashboard/dashboard-load.jsx and applyDashboardData in lib/dashboard/dashboard.jsx, added a small task-list tweak in lib/dashboard/dream-task.jsx, and updated styles (config-popup.scss, dashboard-layout-popup.scss). Result: popup no longer opens off-screen, improving accessibility and UX.
Awaiting deploy
Worked June 27 in alloy-org/dashboard-plugin
100 Δ
Add v2 LLM-driven Task Rescorer UI (gpt-5.4-mini) and Fix by-tag lookup bugs
Add v2 LLM-driven Task Rescorer UI and agent (lib/functions/task-rescorer.js) using gpt-5.4-mini to propose clickable score recommendations with one-sentence rationales. Adds interactive task-source selection, rescore presets, configurable max-per-pass, concurrent batching, LLM quota/rationale limits, provider-selection logging and user API-key fallback; fixes by-tag lookup bugs. Improves reliability, observability and cost-control of rescoring and smooths the apply flow.
Awaiting deploy
Worked on from June 12 through June 15 in alloy-org/ample-agent-pro
2100 Δ
Add Layout Picker widget; Fix Graveyard lazy-hydration and persist task->note metadata
Adds a Layout Picker dashboard widget (lib/dashboard/layout-picker.js) with three one-click layout profiles and Apply/Dismiss plus persisted selection. Fixes Graveyard lazy-hydration by URI-encoding and persisting task->note metadata, switches to lazy getTask hydration, tightens logging and adds focused graveyard tests — resulting in faster retirement-candidate loads, preserved metadata, and predictable dashboard layouts.
Awaiting deploy
Worked on from May 10 through May 15 in alloy-org/dashboard-plugin
1700 Δ
Fix: Persist Day Sketch user-edited hours and remove brittle new-widget pop-in behavior
Return humanEditedHours from parseNoteContent and append a human-edited footer in buildNoteBody so only user-edited Day Sketch hour lines are restored on load while auto-populated lines revalidate asynchronously. Remove brittle lib/util/new-component-popin.js, tighten recent-notes filtering and add logging to prevent schedule overwrites and flaky widget pop-ins — resulting in more reliable persisted Day Sketch edits and a stabler dashboard.
Awaiting deploy
Worked on from May 12 through May 15 in alloy-org/dashboard-plugin
1000 Δ
Add desktop widget focus mode
Awaiting deploy
Worked May 9 in alloy-org/dashboard-plugin
300 Δ
Add Graveyard dashboard widget (v1)
Introduce a v1 Graveyard dashboard widget by adding lib/dashboard/graveyard.js. This change adds the initial widget implementation (UI and supporting logic) to surface Graveyard items in the dashboard; it’s the first public iteration and is not yet deployed. Impact: enables the dashboard to display Graveyard content and provides a base for review and further enhancements.
Awaiting deploy
Worked May 9 in alloy-org/dashboard-plugin
300 Δ
Refactor Recent Notes & Agenda: persist daily recent notes with deterministic reseed and caps; sort agenda items by time
Extract recent-notes behavior into lib/recent-notes-service.js and update the dashboard widget to persist per-day recent notes in an archived dashboard note (fenced JSON). Implement deterministic reseed (date+reseed hash), hydrate cached selections before render, and enforce discovery/scan/history caps. Update lib/dashboard/agenda.js to merge tasks and calendar events and sort by ascending time (all-day first; untimed last). Result: bounded dashboard state, stable reseeding, and correctly ord...
Awaiting deploy
Worked April 2026 in alloy-org/dashboard-plugin
800 Δ
Add scaffold test for Ample Agent call to provide AI for dashboard (plugin fallback)
Add test/call-plugin-fallback.test.js which scaffolds and verifies calls to the Ample Agent plugin fallback used to provide AI features for the dashboard. The test builds mock app and fetch helpers and exercises the fallback invocation and response handling to validate the integration. Improves test coverage and reduces risk of regressions in dashboard AI calls.
Awaiting deploy
Worked April 2026 in alloy-org/dashboard-plugin
100 Δ
Fix day-sketch plain-text conversion to strip HTML/Markdown; add Shift+Up/Down selection and stripMarkdown utility
Updated day-sketch to reliably strip HTML and Markdown when converting task content to plain text (lib/dashboard/day-sketch.js) by using a new stripMarkdown utility in lib/util/utility.js. Added Shift+Up/Down handling to extend selection on the current-hour input. Tests (test/day-sketch.test.js) and AI_CONTRIBUTIONS.md updated. Result: cleaner prefills and improved keyboard selection UX.
Awaiting deploy
Worked April 2026 in alloy-org/dashboard-plugin
100 Δ
Add up/down arrow handling to DaySketch and refactor module into smaller functions
Refactor DaySketch by breaking a single large function into focused helpers and updating lib/dashboard/day-sketch.js to handle up/down arrow key navigation between entries. Adjusted prefill/use routines (entriesPrefilledFromTasks, prefillTextFromTask, useDaySketchEntries) for clearer flow. Result: improved keyboard navigation, clearer code structure and easier maintenance.
Awaiting deploy
Worked April 2026 in alloy-org/dashboard-plugin
200 Δ
Fix: mobile mood rating sent full responses array instead of a single randomly selected response
Fixed a bug in components/mood-rating-screen/post-rating-section.js where the mobile mood-rating response message contained the entire array of possible responses rather than one randomly selected entry. Updated the post-rating selection logic to pick and send a single response. This produces correct, concise messages and avoids sending oversized/incorrect payloads to consumers.
Deployed April 2026
Worked April 2026 in alloy-org/ample-mobile
100 Δ
Add per-card preserve/complete/remove workflows and lifecycle callbacks to DreamTask; add dev prompt modal for testing
Introduce per-card preserve/complete/remove workflows in DreamTask with stable per-card keys, per-card dismissed/expanded state, CARD_REMOVE_FADE_MS timed removals, confetti on completion, and lifecycle callbacks (onPreserve, onComplete, onRemove, onToggleExplanation). Add a simple dev prompt modal (lib/util/browser-dev-app.js) that mocks app.prompt with checkbox/radio/select/date/text inputs to simplify developer testing and make card lifecycle behavior predictable.
Awaiting deploy
Worked April 2026 in alloy-org/dashboard-plugin
1100 Δ
Add LLM model selection for dream-task reseed and update widget wrapper to allow scrolling
Add a dashboard provider selection UI (lib/dashboard/dream-task-provider-selection.js) to let users choose which LLM to use when reseeding dream tasks if multiple models are available. Also update the default widget wrapper style to allow scrolling so the selector and long content fit constrained containers. Includes small docs and test adjustments — enables explicit model control and prevents layout overflow.
Awaiting deploy
Worked April 2026 in alloy-org/dashboard-plugin
300 Δ
Make 'Replace Markdown' a one-click option in selection menu to reduce clicks
Surface the Replace Markdown action directly in the selection menu (app/javascript/lib/ample-editor/components/selection-menu.js): moved and consolidated the ConvertFromMarkdownButton logic and adjusted related ExtractContentButton code so replacing markdown no longer requires a second click when applicable. Deployed to production 2026-03-31 — reduces user clicks and streamlines editor workflow.
Deployed March 2026
Worked March 2026 in gitclear/gitclear, alloy-org/ample-web
100 Δ
Add markdown paste handling for AI-generated text (OpenAI/Phind) to convert headings, lists, bold and preserve blank lines
Detect markdown-like text in clipboard input and run it through the project's markdown parser (clipboard.js) instead of treating it as plain text HTML. Added logic to preserve blank lines as empty paragraphs and convert headings, bold and list markup into ProseMirror nodes, and added a between-apps test verifying OpenAI/Phind markdown is transformed correctly. Result: more faithful pastes from AI tools into the editor.
Deployed March 2026
Worked March 2026 in alloy-org/ample-web
100 Δ