Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
0e635cc
feat: Enhance Mergify configuration for improved PR handling and auto…
unclesp1d3r Mar 16, 2026
df4205f
feat: Add initial configuration for MCP server using Tessl
unclesp1d3r Mar 16, 2026
ce35156
feat: Add initial tessl configuration file for project setup
unclesp1d3r Mar 16, 2026
6d65584
feat: Add MCP server configuration for Tessl
unclesp1d3r Mar 16, 2026
eba12f3
feat: Add MCP server configuration for Tessl
unclesp1d3r Mar 16, 2026
590f1ac
feat: Add MCP server configuration for Tessl
unclesp1d3r Mar 16, 2026
9423ec9
feat: Update .gitignore to exclude tessl-generated files
unclesp1d3r Mar 16, 2026
36cc6b0
feat: Add dependencies for actionbook/rust-skills with included skills
unclesp1d3r Mar 16, 2026
3b3b516
docs: Update CLI and installation documentation for clarity and accuracy
unclesp1d3r Mar 16, 2026
4683175
docs: Revise README for clarity and conciseness, update installation …
unclesp1d3r Mar 16, 2026
49f34b1
docs: Update CLI documentation for flag naming consistency and clarity
unclesp1d3r Mar 16, 2026
7c25adf
docs: Enhance error messages for binary parsing and memory mapping
unclesp1d3r Mar 16, 2026
c8995a5
docs: Improve informational message for no matching filters in pipeli…
unclesp1d3r Mar 16, 2026
447ad0d
docs: Clarify CLI encoding enum documentation and improve help text f…
unclesp1d3r Mar 16, 2026
32bcef0
tests: Add stdin edge case tests and validate help output for exit codes
unclesp1d3r Mar 16, 2026
87352d8
docs: Add note on Clap derive attributes requiring string literals in…
unclesp1d3r Mar 16, 2026
eace435
docs: Update tags section in Quick Start guide to include additional …
unclesp1d3r Mar 16, 2026
ea2a9d6
fix: Revert misleading error recovery hints and improve filter diagno…
unclesp1d3r Mar 16, 2026
4e00fa1
fix: Relax stdin Mach-O test assertion for cross-platform safety
unclesp1d3r Mar 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .codex/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[mcp_servers.tessl]
type = "stdio"
command = "tessl"
args = [ "mcp", "start" ]
12 changes: 12 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"mcpServers": {
"tessl": {
"type": "stdio",
"command": "tessl",
"args": [
"mcp",
"start"
]
}
}
}
12 changes: 12 additions & 0 deletions .gemini/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"mcpServers": {
"tessl": {
"type": "stdio",
"command": "tessl",
"args": [
"mcp",
"start"
]
}
}
}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,8 @@ tests/fixtures/*

# Git worktrees
.worktrees/


# tessl-generated files
**/tessl__*
.tessl/tiles/
12 changes: 12 additions & 0 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"mcpServers": {
"tessl": {
"type": "stdio",
"command": "tessl",
"args": [
"mcp",
"start"
]
}
}
}
78 changes: 53 additions & 25 deletions .mergify.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,41 @@
queue_rules:
# Dosubot: only needs quality (fmt + clippy) to pass
- name: dosubot
merge_method: squash
autoqueue: true
queue_conditions:
- author = dosubot[bot]
- base = main
merge_conditions:
- check-success = quality

# Dependabot: full CI required
- name: dependabot
merge_method: squash
autoqueue: true
queue_conditions:
- author = dependabot[bot]
- base = main
merge_conditions:
- check-success = quality
- check-success = msrv (stable)
- check-success = msrv (stable minus 1 releases)
- check-success = msrv (stable minus 2 releases)
- check-success = msrv (stable minus 3 releases)
- check-success = msrv (stable minus 4 releases)
- check-success = test
- check-success = test-cross-platform (ubuntu-latest, Linux)
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage

# Human PRs: manually enqueued via /queue command (repo permissions restrict to maintainers)
- name: default
merge_method: squash
queue_conditions:
- base = main
- author != dependabot[bot]
- author != dosubot[bot]
merge_conditions:
- check-success = quality
- check-success = msrv (stable)
Expand All @@ -13,58 +48,50 @@ queue_rules:
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage

pull_request_rules:
- name: Queue maintainer PRs with lgtm label
- name: Auto-approve dosubot PRs
description: Approve dosubot PRs so they can proceed through the queue
conditions:
- base = main
- author=@maintainers
- label = lgtm
- label != do-not-merge
- author = dosubot[bot]
actions:
queue:
name: default
- name: Auto-approve and queue dependabot PRs
review:
type: APPROVE
message: Automatically approved by Mergify

- name: Auto-approve dependabot PRs
description: Approve dependabot PRs so they can proceed through the queue
conditions:
- base = main
- author = dependabot[bot]
- label != do-not-merge
- -files~=\.github/workflows/release\.yml
actions:
review:
type: APPROVE
message: Automatically approved by Mergify
queue:
name: default
- name: Queue external PRs when approved by maintainer
conditions:
- base = main
- -author=@maintainers
- author != dependabot[bot]
- approved-reviews-by=@maintainers
- label != do-not-merge
actions:
queue:
name: default

- name: Keep PRs up to date with main
conditions:
- base = main
- -conflict
- -draft
- label != do-not-merge
actions:
update: {}

merge_protections:
- name: Enforce conventional commit
description: Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
if:
- base = main
- author != dependabot[bot]
- author != dosubot[bot]
success_conditions:
- "title ~=
^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\\(.+\
\\))?:"
- name: CI must pass
description: All CI checks must pass. This protection prevents manual merges
that bypass the merge queue.

- name: Full CI must pass
description: All CI checks must pass. This protection prevents manual merges that bypass the merge queue.
if:
- base = main
success_conditions:
Expand All @@ -79,6 +106,7 @@ merge_protections:
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage

- name: Do not merge outdated PRs
description: Make sure PRs are within 10 commits of the base branch before merging
if:
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Use idiomatic `clap` derive API patterns. Push validation into clap wherever pos
| `--no-tags` | | `Vec<Tag>` | Repeatable, runtime overlap check with `--only-tags` |
| `--min-len` | `-m` | `Option<usize>` | Custom parser enforces >= 1 |
| `--top` | `-t` | `Option<usize>` | Custom parser enforces >= 1 |
| `--enc` | `-e` | `Option<CliEncoding>` | ascii, utf8, utf16, utf16le, utf16be |
| `--enc` | | `Option<CliEncoding>` | ascii, utf8, utf16, utf16le, utf16be |
| `--raw` | | bool | Conflicts with `--only-tags`, `--no-tags`, `--top`, `--debug`, `--yara` |
| `--summary` | | bool | Conflicts with `--json`, `--yara`; runtime TTY check |
| `--debug` | | bool | Conflicts with `--raw` |
Expand Down
3 changes: 2 additions & 1 deletion GOTCHAS.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ Changing default values in `ExtractionConfig::default()` requires updating asser
- `--raw` mode performs extraction only and then early-exits: ranking, normalization, and pipeline-level classification are skipped. `tags` are cleared, `score` is forced to 0, and `display_score` is set to `Some(0)`. `assert_cmd` tests run piped (non-TTY); use `format_table_with_mode(&strings, &metadata, true)` to test TTY table rendering
- Exit codes are typed: 0=success, 2=config/validation error, 3=file not found, 4=permission denied, 1=other. Tests asserting exit codes must match `StringyError::exit_code()` in `types/error.rs`
- `--no-tags` is the canonical flag name (kebab-case). Previously was `--notags` -- update all references when touching CLI flag names
- Short flags: `-j` (json), `-m` (min-len), `-t` (top), `-e` (enc). Do not add short flags for infrequent flags (--yara, --raw, --summary, --debug)
- Short flags: `-j` (json), `-m` (min-len), `-t` (top). Do not add short flags for infrequent flags (--enc, --yara, --raw, --summary, --debug)
- `NO_COLOR` env var disables progress spinner. The spinner is also hidden when stderr is not a TTY
- Clap derive attributes (`long_help`, `about`, etc.) require string literals -- `const` values and `concat!` with consts do not work. The `cli_help_lists_all_canonical_tags` test in `integration_cli.rs` verifies help text stays in sync with `Tag::from_str()`

## Dependencies

Expand Down
Loading
Loading