backnotprop / backnotprop/plannotator

Allow minting a replacement short link for small shared plans

Open
#1,427 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
8.7k
Forks
649
Avg merge
11h 12m
Merged PRs (30d)
109

Description

## Context

PR #1425 fixes #798 by treating incoming short links as immutable snapshots and removing a stale short URL after the represented content changes.

A remaining product limitation affects small markdown plans: `ExportModal` only offers **Create short link** when the full hash URL exceeds 2048 characters or hash sharing is unavailable. After editing a small plan loaded from a short link, the user gets a correct fresh full URL, but cannot explicitly mint a replacement short link from Export. This leaves the literal short-link step in the workflow reported in #798 incomplete for small plans.

## Intended behavior

After an incoming or locally generated short URL is invalidated by a material edit, Export should offer an explicit way to create a fresh short link even when the current full hash URL is below the large-URL threshold.

## Constraints

- Keep pastes immutable: never update or delete the original paste.
- Creating a replacement remains an explicit user action; do not auto-upload on edits.
- Preserve current payload, encryption, and existing-link compatibility.
- Decide whether the action should appear only after invalidation or be available for every shareable small plan.

## Acceptance criteria

- A small markdown plan loaded from a short link loses the stale URL after an edit.
- Export exposes a replacement short-link action.
- Invoking it creates a distinct encrypted paste representing current content.
- The original paste remains unchanged.

Tracked separately from #1425 per the maintainer review so that PR stays focused on stale-snapshot correctness.

Contributor guide

Open the contributing guide

Research direction

Start in ExportModal and trace how incoming or locally generated short URLs are invalidated after a material edit, along with the existing large-URL and hash-sharing conditions. Verify that a small edited markdown plan can explicitly create a distinct encrypted paste for the current content while leaving the original paste unchanged and preserving existing payload and encryption behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.