Skip to content

copy as markdown , /{endpoint}.md , open in chat platform - #16

Merged
CharanMN7 merged 23 commits into
inkform-dev:mainfrom
aquaticcalf:main
Aug 11, 2026
Merged

copy as markdown , /{endpoint}.md , open in chat platform#16
CharanMN7 merged 23 commits into
inkform-dev:mainfrom
aquaticcalf:main

Conversation

@aquaticcalf

@aquaticcalf aquaticcalf commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

@CharanMN7 check this out -

copy-as-markdown-endpoint.md-open-in-chat-platform-demo-720p.mp4

@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

@aquaticcalf is attempting to deploy a commit to the Charan's projects Team on Vercel.

A member of the Team first needs to authorize it.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
framework-inkform-docs Ready Ready Preview Aug 11, 2026 2:05pm
pokeapi Ready Ready Preview Aug 11, 2026 2:05pm

Request Review

- Add monochrome brand marks (ai-tool-icons) as default icons for every AI
  tool in AiToolMenu and ViewOptionsPopover; icons prop still overrides
- VS Code MCP install URI now includes type:http (required for URL servers)
- Playful one-shot wiggle animation on icon hover with reduced-motion guard
- Tiny CSS confetti burst when a copy action succeeds (reduced-motion safe)
- Copy buttons show 'Copied command' (CLI tools) / 'Copied Markdown' without
  changing width or switching to primary color
- Markdown copy label centered in the button
- MarkdownCopyButton: only cache successful fetches (a failure no longer
  poisons the cache) and reject non-OK responses instead of copying them
- remarkPlainMarkdown: splice directive children in place instead of
  reassigning parent.children mid-visit
- Fix createMarkdownHandler docstring: correct mount path + example that
  matches the shipped route files; drop the duplicated module-docstring copy
- Remove dead code: aiTool(), safeBase64 export, unused directory prop,
  dead defaultIcon(), unused .fw-page-action--copied CSS
- Unify ViewOptionsPopover icons prop to AiToolId keys; no Lucide mention
- Correct stale reserve-span comment (centered / Copied Markdown)
- Extract CopyGlyph/CheckGlyph/ExternalGlyph/TextGlyph into glyphs.tsx and
  copyText into clipboard.ts; ai-tool-menu and page-actions now share them
- Confetti piece colors are --fw-confetti-* local tokens on .fw-confetti
  (layout.css) instead of hardcoded hex in TSX
- PAGE ACTIONS section divider now uses the box-drawing style used by the
  other stylesheet sections

@CharanMN7 CharanMN7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ayy, love the update! thanks for the PR!

i see that you're updated all the examples and templates as well!

everything looks good. only confused what exactly does the stripeLeadingH1 function does. other than that, it's all good. do drop a comment about it when you see this, and i'll patch up the vulnerabilities stuff so the CI check passes, later today.

Comment thread examples/inkform-docs/app/[[...slug]]/page.tsx
CharanMN7 and others added 3 commits August 11, 2026 19:19
WHAT CHANGED
  fast-uri  3.1.4  -> 3.1.5   (HIGH,     GHSA-7p8r-x3mc-p8w7)
  js-yaml   3.15.0 -> 3.15.1  (HIGH,     GHSA-5p4m-2wfm-xmqj)
  nanoid    3.3.16 -> 3.3.18  (HIGH,     GHSA-2v37-7h3g-55p8)
  hono      4.12.32-> 4.13.1  (MODERATE, GHSA-8j4g-w8fx-2239
                               + GHSA-f23p-vx2j-j53r, GHSA-54fx-42gc-7vw4,
                                 GHSA-79qm-7rj5-m7r9)

Plus one source change: the root `js-yaml` override moved from `^3.15.0`
to `^3.15.1`. That override was declaring a floor that is itself the
vulnerable version — 3.15.0 is inside the advisory's `>= 3.0.0, < 3.15.1`
range — so it could have silently pinned the tree back onto a vulnerable
release on a fresh resolve. The floor now sits on the patched version.

WHY THESE, AND WHY NOW
CI's last run on this PR was red on exactly one step — `npm audit
--audit-level=high` — with every other step (lint, typecheck, test,
build) green. These four advisories are that failure. They are also 4 of
the 5 distinct packages on the repo's Dependabot alert page.

All four are transitive, and every one of them was already permitted to
reach its patched version by its parent's existing semver range:

  fast-uri <- ajv                         (^3.0.1  -> 3.1.5  in range)
  js-yaml  <- gray-matter                 (^3.13.1 -> 3.15.1 in range)
  nanoid   <- postcss                     (^3.3.16 -> 3.3.18 in range)
  hono     <- @modelcontextprotocol/sdk   (^4.11.4 -> 4.13.1 in range)

So this is a lockfile refresh, not a dependency change: no declared
dependency range in any package.json moved, and no new override was
added. `npm update <pkg>` for exactly these four names; the resulting
diff touches 4 version/resolved/integrity triples and nothing else.

WHY NO NEW OVERRIDES
The existing overrides block pins transitive deps to EXACT versions
(postcss 8.5.23, sharp 0.35.3, @hono/node-server 2.0.12). Adding
fast-uri/nanoid/hono to it would freeze them at today's patch and stop
future security patches from flowing in on their own — the opposite of
what's wanted. The standing guard is the `npm audit --audit-level=high`
step already in CI, which goes red the moment a new high advisory lands
against anything in the tree. js-yaml is the one exception because its
override already existed and its floor was wrong.

WHY hono LANDED ON 4.13.1 AND NOT 4.12.34
4.12.34 is the advisories' minimum patched version; 4.13.1 is the newest
release inside the MCP SDK's declared `^4.11.4`, and is what a clean
resolve produces. Holding it back to 4.12.34 would have required a new
override to pin it BELOW what upstream permits — a stale pin someone
would later have to remember to remove. hono is also off this
framework's runtime path entirely: the MCP server (packages/framework/
src/mcp/server.ts) uses WebStandardStreamableHTTPServerTransport, which
is web-standard Request/Response, so hono ships in the tree as an unused
transitive of the SDK's other transports. @hono/node-server@2.0.12's
peer range is `hono ^4`, which 4.13.1 satisfies.

IMPACT
  - `npm audit --audit-level=high` now exits 0 (was exit 1 — the sole
    red step on this PR). 0 vulnerabilities at any severity.
  - No API, behavior, or bundle-shape change. Verified green after the
    bump on the same four steps CI runs: lint, typecheck (6 workspaces),
    test (96 tests / 13 files, all passing), build (6 workspaces
    compiled + pagefind index built).
  - Runtime risk is confined to js-yaml (via gray-matter's frontmatter
    parsing, a patch release) and nanoid (via postcss, a patch release).
    fast-uri (ajv) and hono (unused SDK transport) are not on any code
    path this framework executes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… alerts)

WHAT CHANGED
One line in each of the six archived templates — aurora, base, cedar,
fern, galley, mono:

    "next": "16.2.10"  ->  "next": "16.2.12"

Nothing else in archive/ is touched.

WHY
These six manifests are the source of 54 of the repo's 63 open Dependabot
alerts — 9 distinct Next.js advisories x 6 templates, all with the same
`>= 16.0.0, < 16.2.11` vulnerable range:

  HIGH  GHSA-m99w-x7hq-7vfj  DoS in App Router using Server Actions
  HIGH  GHSA-6gpp-xcg3-4w24  Middleware/Proxy bypass (Turbopack, single locale)
  HIGH  GHSA-p9j2-gv94-2wf4  SSRF in rewrites via attacker-controlled host
  HIGH  GHSA-89xv-2m56-2m9x  SSRF in Server Actions on custom servers
  MED   GHSA-955p-x3mx-jcvp  Unauthenticated disclosure of Server Function endpoints
  MED   GHSA-q8wf-6r8g-63ch  DoS in Image Optimization API using SVGs
  MED   GHSA-4c39-4ccg-62r3  Unbounded Server Action payload in Edge runtime
  MED   GHSA-68g3-v927-f742  Cache confusion of response bodies
  MED   GHSA-4633-3j49-mh5q  Cache confusion on invalid UTF-8 request bodies

WHY 16.2.12 AND NOT THE PATCHED MINIMUM 16.2.11
16.2.12 is the newest 16.2.x stable, and it is already what every live
workspace pins — templates/{canopy,galley,shadcn} and
examples/{inkform-docs,markdown-docs,pokeapi-docs}. Landing the archive on
the same version makes "what Next does this repo use" a single answer
instead of two, and clears the advisories with the same one-line edit.

IMPACT, AND ONE PRE-EXISTING PROBLEM THIS SURFACED
archive/templates/* is outside the npm workspaces array, so these six are
not installed, typechecked, or built by `npm ci` or by CI. This commit
therefore cannot affect the CI result or any shipped artifact — it changes
a version string in six manifests Dependabot reads and nothing else does.

To confirm the bump is safe rather than assume it, archive/templates/base
was installed and built standalone twice — once on 16.2.10, once on
16.2.12 — and the two runs compared:

  next 16.2.10:  tsc exit 1, 10 errors  |  next build exit 1
  next 16.2.12:  tsc exit 1, 10 errors  |  next build exit 1
  tsc output:    byte-identical
  build output:  byte-identical (modulo the version string itself)

So the bump provably changes nothing — but note what the control run
proves on its own: these archived templates ALREADY do not build, on
either version. They import `@inkform/framework/ai`,
`@inkform/framework/openapi-render`, `@inkform/framework/openapi-engine/
{nav,parse}` and pass `contentType` / read `DocsTab.apiReference`, none of
which exist in the `@inkform/framework@^0.3.0` their manifests depend on.
The published 0.3.0 predates those APIs; the repo's own framework is now
0.4.0, which `^0.3.0` cannot reach.

That breakage is pre-existing, is about framework API drift rather than
Next.js, and is deliberately left alone here: fixing it means re-pointing
the archive at ^0.4.0 and rewriting archived template source, which is a
functional change to archived code and does not belong in a security
patch. Flagging it rather than silently folding it in.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…y still get security bumps

WHAT CHANGED
Adds archive/README.md. No code, no dependency, no config change.

WHY
The preceding commit bumped `next` in all six archived templates to clear
54 Dependabot alerts. Verifying that bump was safe turned up something
worth writing down: those templates already do not build, on the old
version or the new one.

They depend on `@inkform/framework: ^0.3.0`. A caret range on a 0.x
version cannot cross the minor, so `^0.3.0` can only ever resolve to the
published 0.3.0 — but the source in those directories was written against
the API that shipped in 0.4.0. So they fail at module resolution on
`@inkform/framework/{ai,openapi-render,openapi-engine/nav,openapi-engine/
parse}`, plus two API-shape mismatches (`contentType` on DocsShell,
`apiReference` on DocsTab).

That's normal for archived code and is not a regression — but it is
invisible, because nothing installs or builds archive/ (it sits outside
the workspaces array, so `npm ci` and CI both skip it). Left undocumented,
the failure mode is someone opening a template that advertises a current
Next.js version, assuming it is maintained, and spending an afternoon
finding out otherwise.

The README also states the inverse, which is the non-obvious half:
Dependabot scans every package.json in the repo whether or not it is a
workspace, so these manifests keep raising alerts and keep needing
patches even though no build consumes them. A version bump here is
alert hygiene, and explicitly does not mean the template was retested.

IMPACT
Documentation only — a maintainer-facing note in a directory that had
none. Nothing reads this file at build time; nothing in CI changes. Kept
as its own commit so it can be dropped independently of the security
fixes if a reviewer would rather not carry it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@CharanMN7
CharanMN7 merged commit a946bf1 into inkform-dev:main Aug 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants