Skip to content

Improve webdirect-runtime skill discoverability - #302

Open
eluce2 wants to merge 1 commit into
mainfrom
fix/webdirect-skill-discoverability
Open

Improve webdirect-runtime skill discoverability#302
eluce2 wants to merge 1 commit into
mainfrom
fix/webdirect-skill-discoverability

Conversation

@eluce2

@eluce2 eluce2 commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Community report: an agent debugging a blank WebDirect app never found the webdirect-runtime skill's encoding guidance. Its intent list output showed no skill title/description mentioning encoding, Unicode, deploy_html, or content corruption.

The content existed (shipped in @proofkit/webviewer@3.3.0, commit 7ba2d6d) but wasn't routable: "character encoding" sat last in a keyword blob, and UTF-8, Unicode, blank screen, corrupted, emoji, special characters, and deploy_html appeared nowhere in the skill.

Changes

  • Description rewritten as a dense routing key per the intent generate-skill spec: leads with the symptom (blank/white/empty WebDirect app, empty page body, garbled/corrupted deployed HTML) and names UTF-8, Unicode, mojibake, emoji, accented, curly quote, non-ASCII, deploy_html. Refresh/state/bundle-size keywords retained, moved after.
  • Troubleshooting section names deploy_html as the script writing the single-file HTML payload, and lists the usual non-ASCII culprits.

Changeset added (patch).

intent validate passes; pnpm run ci green.

Summary by CodeRabbit

  • Documentation
    • Expanded WebDirect troubleshooting guidance for blank pages, corrupted HTML, and character encoding issues.
    • Added guidance for diagnosing deploy_html-generated HTML responses and non-ASCII character problems.
    • Clarified recommended rebuild, redeploy, and response-verification steps.
  • Release
    • Prepared a patch release for the web viewer package.

Description leads with blank/empty WebDirect symptoms + encoding keywords
(UTF-8, Unicode, emoji, non-ASCII, deploy_html). Name deploy_html and
common culprits in troubleshooting section.
@changeset-bot

changeset-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f9a562f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@proofkit/webviewer Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
proofkit-docs Ready Ready Preview Aug 12, 2026 5:52pm

Request Review

@pkg-pr-new

pkg-pr-new Bot commented Aug 12, 2026

Copy link
Copy Markdown

Open in StackBlitz

@proofkit/better-auth

pnpm add https://pkg.pr.new/@proofkit/better-auth@302

@proofkit/fmdapi

pnpm add https://pkg.pr.new/@proofkit/fmdapi@302

@proofkit/fmodata

pnpm add https://pkg.pr.new/@proofkit/fmodata@302

@proofkit/typegen

pnpm add https://pkg.pr.new/@proofkit/typegen@302

@proofkit/webviewer

pnpm add https://pkg.pr.new/@proofkit/webviewer@302

commit: f9a562f

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The WebDirect runtime skill now documents blank pages, corrupted HTML, encoding failures, deploy_html, and non-ASCII causes. A patch changeset records the update for @proofkit/webviewer.

Changes

WebDirect skill discoverability

Layer / File(s) Summary
Expand WebDirect troubleshooting guidance
packages/webviewer/skills/webdirect-runtime/SKILL.md, .changeset/webdirect-skill-discoverability.md
The skill metadata and troubleshooting steps cover blank responses, HTML encoding diagnostics, deploy_html redeployment, and non-ASCII inputs. A patch changeset records the update.

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: improving discoverability for the webdirect-runtime skill.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/webdirect-skill-discoverability

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/webviewer/skills/webdirect-runtime/SKILL.md`:
- Line 56: Update the character-encoding guidance in the WebDirect
troubleshooting section to identify malformed or misdecoded non-ASCII content as
the failure condition, rather than listing valid emoji, curly quotes, or
accented letters as inherently problematic. Mention invalid UTF-8 sequences
affecting those characters, while preserving the existing inspection, rebuild,
redeploy, and response-check steps.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 20732dac-ba0e-4d2c-83a4-19820832e3f7

📥 Commits

Reviewing files that changed from the base of the PR and between 90e6ce7 and f9a562f.

📒 Files selected for processing (2)
  • .changeset/webdirect-skill-discoverability.md
  • packages/webviewer/skills/webdirect-runtime/SKILL.md

4. Distinguish an empty WebDirect page response from an empty rendered root element inside the Web Viewer. React can start with an empty root and populate it at runtime, so the DOM alone doesn't prove that WebDirect omitted the bundle.

If the complete page served by WebDirect has an empty body and the Web Viewer bundle is absent from that response, suspect character encoding first. An incorrectly encoded or unsupported character in the deployed single-file HTML can cause WebDirect to return an empty body instead of sending the bundle. Inspect the built HTML for invalid UTF-8 or problematic characters, rebuild, redeploy, and check the full WebDirect response again.
If the complete page served by WebDirect has an empty body and the Web Viewer bundle is absent from that response, suspect character encoding first. An incorrectly encoded or unsupported character in the deployed single-file HTML — the payload the `deploy_html` FileMaker script writes into the file — can cause WebDirect to return an empty body instead of sending the bundle. Non-ASCII content such as emoji, curly quotes, accented letters, or invalid UTF-8 sequences is the usual source. Inspect the built HTML for invalid UTF-8 or problematic characters, rebuild, redeploy via `deploy_html`, and check the full WebDirect response again.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

sed -n '1,110p' packages/webviewer/skills/webdirect-runtime/SKILL.md
printf '\n--- deploy_html references ---\n'
rg -n -C 3 'deploy_html|encoding|UTF-8|empty body|WebDirect' packages/webviewer

Repository: proofsh/proofkit

Length of output: 19230


🌐 Web query:

FileMaker WebDirect empty response body unsupported character UTF-8 HTML encoding deploy HTML

💡 Result:

In FileMaker WebDirect, issues involving empty response bodies or failing to load content in Web Viewers are often related to how HTML data URIs are constructed, character encoding, or specific reserved character strings. Key technical insights for troubleshooting: 1. Data URI Encoding Strategy: Historically, developers used Base64 encoding for HTML content in Web Viewers to avoid character conflict issues in WebDirect [1][2]. The pattern involves checking the application version and applying Base64 encoding only for WebDirect: Case ( PatternCount ( Get ( ApplicationVersion); "Web"); "data:text/html;base64," & Base64Encode ( YourHTMLField); "data:text/html," & YourHTMLField) [1]. However, note that as of FileMaker Server 21.1, the requirement to use Base64 encoding for Web Viewers has been removed, and using it may now be unnecessary or even detrimental to performance [3]. 2. Special Characters and Encoding: - Reserved Characters: If your HTML or URL contains characters like '#', it can break Web Viewer rendering in certain browsers [4][2]. A common workaround is to substitute '#' with its URL-encoded equivalent '%23' for WebDirect clients [2]. - URI Syntax: Including explicit character sets like 'charset=UTF-8' within a data URI (e.g., 'data:text/html;charset=UTF-8,...') can sometimes conflict with WebDirect's internal handling of the Web Viewer, leading to rendering failures [5]. - General URL Encoding: All URL parameters (database names, script names, script parameters) must be properly URL-encoded (e.g., space to '%20') [6][7][8]. Failing to encode special characters in these strings can lead to HTTP 500 errors or broken sessions [9]. 3. Blocked Strings: FileMaker WebDirect historically blocks specific strings in Web Viewer content. For example, the string '/fmi/webd' is restricted within Web Viewer HTML source because it conflicts with the WebDirect engine itself. If you must use such strings, developers have used workarounds like RFC 3986 encoding (e.g., '/fmi/web%64') to bypass these filters [10]. 4. Troubleshooting Checklist: - Verify that your FileMaker Server deployment is up to date, as many WebDirect rendering and encoding issues have been addressed in recent versions [11][3][6]. - Test your HTML content by stripping it down to the simplest possible version to isolate if specific characters or external resources (like CSS/JS libraries) are causing the failure [1]. - Check browser console logs for "FileMaker is undefined" errors, which often indicate that the Web Viewer failed to initialize correctly due to its content [5].

Citations:


🏁 Script executed:

printf '%s\n' '--- all deploy_html references ---'
rg -n -C 4 'deploy_html|Base64Encode|data:text/html|invalid UTF-8|misdecoded|unsupported character|non-ASCII' .

printf '%s\n' '--- UTF-8 validity of the reviewed document ---'
python3 - <<'PY'
from pathlib import Path

path = Path("packages/webviewer/skills/webdirect-runtime/SKILL.md")
data = path.read_bytes()
try:
    text = data.decode("utf-8")
except UnicodeDecodeError as exc:
    print(f"{path}: invalid UTF-8: {exc}")
else:
    print(f"{path}: valid UTF-8, {len(text)} characters")
    for term in ("emoji", "curly quotes", "accented letters", "invalid UTF-8 sequences"):
        print(f"{term!r}: {term in text}")
PY

Repository: proofsh/proofkit

Length of output: 12985


Limit the warning to malformed or misdecoded content.

Emoji, curly quotes, and accented letters are valid UTF-8 by themselves. State that malformed or misdecoded non-ASCII content is the failure condition, including invalid UTF-8 sequences affecting those characters.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/webviewer/skills/webdirect-runtime/SKILL.md` at line 56, Update the
character-encoding guidance in the WebDirect troubleshooting section to identify
malformed or misdecoded non-ASCII content as the failure condition, rather than
listing valid emoji, curly quotes, or accented letters as inherently
problematic. Mention invalid UTF-8 sequences affecting those characters, while
preserving the existing inspection, rebuild, redeploy, and response-check steps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant