Skip to content

Port Fig postProcess, token-aware generators, and filters - #392

Merged
acarl005 merged 20 commits into
factory/port-fig-generatorsfrom
factory/port-fig-postprocess
Sep 4, 2026
Merged

Port Fig postProcess, token-aware generators, and filters#392
acarl005 merged 20 commits into
factory/port-fig-generatorsfrom
factory/port-fig-postprocess

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Stacked on #391. Ports remaining structured Fig postProcess parsers, token-aware custom generators, and recovered filepaths({extensions}) template filters. Does not implement generateSpec.

Changes

  • Token-aware generators for degit GitHub repos, git-flow type branches, dd conv, man -S sections, file --parameter keys, esbuild loaders, robot variables/tags/test cases, and scc languages/format-multi
  • JSON generatorName wiring for previously stripped custom sites (apt, brew, bun, cargo, chown, docker, eslint, expo, gh, ni, npm, nx, pnpm, rush, st2, trivy, yarn, youtube-dl, and the commands above)
  • Template filters recovered from withfig filepaths({extensions}) / equals generators and wired via filterTemplateName
  • Runtime lookup alignment: deno doc doc_json, Hub generators keyed hub, fig-teams@latest.json, plus j / tns / nativescript / phpunit-watcher
  • deno doc token builder joins the filtered original stream (no duplicate deno doc); DocNode parser reads {version,nodes:[name,jsDoc.doc]}

Verification

  • cargo test --workspace --lib: 176 + 10 passed
  • cargo fmt, cargo clippy --all-targets --all-features -- -D warnings: passed
  • Prettier and all GitHub CI checks: passed
  • Runtime registry audit versus Port Fig generators to Rust #391: 61 reachable generator registrations, 47 reachable filters, zero newly missing or orphaned references
  • Local Warp GUI matrix: 155/155 cases exercised across four isolated builds
    • 94/94 filter accept/reject cases passed
    • 55/61 generator registrations passed through the real completion UI
    • 6/61 generators are blocked by existing Warp-side token binding, with their Rust callbacks separately verified and no remaining command-signatures semantic failures
  • Known Warp-side binding limits:
    • dd conv=: dashless options and requiresSeparator do not bind in the legacy completer (evidence)
    • esbuild --loader: / --banner:: the completer splits option arguments only on =, not : (evidence)
    • @-prefixed Nx and NativeScript values: Warp's global mention picker intercepts the active token; empty/non-@ controls prove generator output (Nx, NativeScript, ns, tns)

Local Warp videos

Cargo nested tests and Tailscale peer completion

Direnv filtering and Hub revisions

Generator screenshots

Shard 0 — 15 generator registrations

bun:npms_search
bun npms_search

dd:conv_remaining — Warp binding limitation
dd conv_remaining binding limitation

deno:doc_json
deno doc_json

elm:elm_packages
elm packages

expo:npms_search
expo npms_search

gh:repo_list_owner
gh repo_list_owner

hub:branches_no
hub branches_no

hub:settings_generator
hub settings_generator

hub:tag
hub tag

nativescript:nativescript_templates — semantic dropdown proof
nativescript templates

nx:plugin_list — semantic dropdown proof
nx plugin_list

robot:variables
robot variables

st2:users_or_groups
st2 users_or_groups

trivy:pkg_types_remaining
trivy pkg_types_remaining

yarn:npms_search
yarn npms_search

Shard 1 — 15 generator registrations

cargo:crates_io_search
cargo crates_io_search

degit:github_user_repos
degit github_user_repos

deployctl:deploy_versions
deployctl deploy_versions

esbuild:loader — Warp colon-separator limitation
esbuild loader binding limitation

fig-teams@latest:teams_list
fig teams list

git-flow:type_branches
git flow type_branches

hub:log
hub log

hub:stashes
hub stashes

hub:treeish
hub treeish

ni:npms_search
ni npms_search

phpunit-watcher:tests
phpunit watcher tests

rush:npms_search
rush npms_search

stepzen:github_schemas
stepzen github_schemas

trivy:scanners_remaining
trivy scanners_remaining

youtube-dl:flat_playlist
youtube-dl flat_playlist

Shard 2 — 16 generator registrations

apt:list_prefix
apt list_prefix

cargo:test_list
cargo test_list

cargo:test_targets
cargo test_targets

deno:deno_binaries
deno binaries

docker:from_as
docker from_as

eslint:env_remaining
eslint env_remaining

fig-teams@latest:users_for_selected_team
fig teams users

hub:aliases
hub aliases

hub:remotes
hub remotes

hub:status
hub status

j:cat
j cat

npm:npms_search
npm npms_search

pnpm:npms_search
pnpm npms_search

rustup:rustup_docs
rustup docs

tailscale:peers_colon
tailscale peers_colon

trivy:severity_remaining
trivy severity_remaining

Shard 3 — 15 generator registrations

brew:gist_logs_actions
brew gist logs

chown:users_or_groups
chown users_or_groups

deno:deno_versions
deno versions

docker:search
docker search

expo-cli:npms_search
expo-cli npms_search

file:param_keys
file param_keys

hub:branches
hub branches

hub:revs
hub revs

hub:status_staged_or_unstaged
hub status staged or unstaged

man:sections_remaining
man sections_remaining

ns:nativescript_templates — semantic dropdown proof
ns templates

robot:test_cases
robot test_cases

scc:format_multi
scc format_multi

tns:nativescript_templates — semantic dropdown proof
tns templates

yarn:create_package_search
yarn create_package_search

@cla-bot cla-bot Bot added the cla-signed label Sep 3, 2026
@warp-agent-staging warp-agent-staging Bot changed the title factory/port fig postprocess Port Fig postProcess, token-aware generators, and filters Sep 3, 2026
@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

This PR was generated with Warp.

Comment @warp-factory on this PR to send it follow-up work.

View run View conversation View on Slack

@acarl005
acarl005 marked this pull request as ready for review September 3, 2026 18:37
@warp-agent-staging
warp-agent-staging Bot marked this pull request as draft September 3, 2026 18:46
@warp-agent-staging
warp-agent-staging Bot marked this pull request as ready for review September 3, 2026 19:12
@acarl005 acarl005 self-assigned this Sep 3, 2026
Replace line-split parsing with shared helpers for JSON, tables, and
other structured Fig postProcess. Add a token-aware Fig Teams user
generator.
Add shared file/folder filters for Python, YAML playbooks, direnv
.envrc, and ts-node tsconfig, recovered from original Fig filepaths
generators.
Rename fig_parse/fig_filters/fig_teams_latest to output_parsers,
template_filters, and fig_teams. Use semantic generator names for
Teams users/teams. Add token-aware generators for cargo, docker,
gh, apt, bun, trivy, chown, and related commands.
Wire token-aware custom generators (degit, git-flow, dd, man, file, esbuild, robot, scc) and recover filepaths({extensions}) filters from withfig sources onto JSON filterTemplateName.
Replace line-split callbacks for ansible-doc, tailscale peers, 1Password accounts, projj cache/hooks, trex imports/scripts, turbo pipeline, cargo read-manifest bins, and elm package search with the original object-specific postProcess mappings.
…mantics

Parse Docker search JSON-lines, StepZen schema/GitHub contents, youtube-dl playlist JSON, and Lerna package.json END streams. Map other non-name-only line registrations to description, git-branch, YAML hook-id, and related structured callbacks.
Parse ~/.ssh/known_hosts host fields (comma lists, hashed skip, user@ prefix) for mosh/sftp/ssh instead of SSH-config Host directives. Walk pre-commit YAML repos[].hooks[].id scalars instead of matching raw id: text.
Sequence items at the same column as `repos:` or `hooks:` stay in that container; sibling mappings still end it. Quoted hook IDs strip wrapping quotes before comments.
Wire deno doc_json, register hub generators under hub, rename
fig-teams.json to match fig-teams@latest, and align other
filename/registry mismatches so JSON generatorName values resolve.
Join the filtered original token stream instead of prepending
`deno doc`, and parse `deno doc --json` `{version, nodes}` using
node name and jsDoc.doc.
Preserve the `conv=` token prefix so remaining conversion names match,
and remove leftover filepaths templates from Trivy remaining-enum args.
Parse hub status --short as paths, list Linux groups with a colon prefix,
and keep scc -f on remaining formats instead of colon path completion.
Keep the fatal: guard on a trimmed view of the whole output, but slice
column 3 from the original status line so a leading space in XY is not
eaten before the path.
…, and j

Wire npms_search on top-level pnpm add. Expand $PWD/Dockerfile instead of
single-quoting it, and drop leftover filepaths from docker --target. Do not
grep cargo test -- --list for the --test flag, attach test_list to TESTNAME,
and read autojump's Linux db path as well as the macOS one.
Warp's case-sensitive lookup rejects a spec whose name field differs from
the filename token, so hub.json named git never attached. Match each spec
name to its file, and send a GitHub User-Agent when listing NativeScript
templates.
Keep test_list on positional TESTNAME. --test now uses cargo metadata
targets whose kind contains test, matching names like integration_target
rather than test function names.
contains(\".envrc\") accepted .envrc.txt. Keep folders for navigation and
only boost files named .envrc.
GNU find treats -depth as a boolean, so -depth 3 failed with paths must
precede expression. Use -maxdepth 3, and still emit loader types when
Warp splits --loader: so the last token has no colon.
-maxdepth is not portable across BSD find. Keep -type f, name filter, and
node_modules exclusion so GNU and macOS find both list extensions.
Print the first N :: segments so shardmod::case matches shardmod::case_alpha,
and stop putting HostName in display_name so Warp prefixes match shard-peer:.
@acarl005
acarl005 force-pushed the factory/port-fig-postprocess branch from ee91968 to e3b09c9 Compare September 4, 2026 02:56
@acarl005
acarl005 merged commit d69b340 into main Sep 4, 2026
8 checks passed
@acarl005
acarl005 deleted the factory/port-fig-postprocess branch September 4, 2026 02:59
acarl005 pushed a commit to warpdotdev/warp that referenced this pull request Sep 4, 2026
## Description
Bump `warp-command-signatures` (and the locked
`warp-completion-metadata` from the same git source) from
`6a39d62048abbf3885be54a7887f1916ebcf7445` to
`d69b340ef622540ac28340ef565dae45287d51d8`. That revision includes
[command-signatures#391](warpdotdev/command-signatures#391)
and
[command-signatures#392](warpdotdev/command-signatures#392)
(Rust Fig generators and template filters).

Lockfile sources for both packages were updated to the same rev.
Unrelated `cargo update` resolution churn was not included.

## Linked Issue
-
[APP-5776](https://linear.app/warpdotdev/issue/APP-5776/port-fig-javascript-argument-generators-and-template-filters-to-rust)

## Testing
Verification was not run, at the requester’s direction.

- [ ] I have manually tested my changes locally with `./script/run`

## Agent Mode
- [ ] Warp Agent Mode - This PR was created via Warp's AI Agent Mode

CHANGELOG-NONE

<!-- warp:pr-description-artifacts start -->
<!-- warp:pr-description-artifacts end -->

Co-authored-by: warp-agent-staging[bot] <240773466+warp-agent-staging[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant