lukasmalkmus/1nitetent
v0.6.4MIT
Query free one-night camping spots from 1nitetent.com via CLI and MCP
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.6.4 - 2026-10-30
Added
- Add portable Agent Plugins 1.0 packaging and an Agent Skills workflow while retaining Claude Code integration.
Fixed
- Start the bundled MCP launcher in Codex without relying on Claude-specific executable-path expansion.
- Keep the portable MCP cache in the plugin's persistent data directory.
- Remove temporary download files before starting the CLI.
Security
- Update
rustls-webpkito 0.103.16 andwebpki-root-certsto 1.0.10 to reject distrusted certificate intermediates (RUSTSEC-2026-0382 and RUSTSEC-2026-0383). - Update
ctutilsto 0.4.4 to fix non-constant-time operations (RUSTSEC-2026-0385).
0.6.3 - 2026-10-19
Changed
- The x86_64 Linux binary needs glibc 2.18 or later, down from 2.39 in 0.6.2.
- Bump direct dependencies:
schemars1.2.3,serde_json1.0.154,tokio1.53.3,zip9.0.5. Refresh transitive dependencies viacargo update.
Security
zip9 closes RUSTSEC-2026-0367 to RUSTSEC-2026-0369. These advisories affectZipArchive::extractandZipStreamReader::extract, which1ntdoes not call.rustls0.23.46 closes RUSTSEC-2026-0346 to RUSTSEC-2026-0349. RUSTSEC-2026-0349 covers an unauthenticated ServerHello that downgrades later connections to classical key exchange.
0.6.2 - 2026-10-07
Fixed
- Drop the literal
<system-reminder>tag from the skill nudge hook text. Claude Code already wraps hook context in that tag and, since 2.1.292, escapes a tag that a hook writes, so Claude saw an escaped tag instead of a plain hint. - Quote the plugin root in the hook commands. The hooks failed with exit 127 when the plugin directory path contained a space.
Changed
- Bump direct dependencies:
clap4.6.7,comfy-table8.0.1,reqwest0.13.5,rmcp3.5.1,thiserror2.0.21,tokio1.53.2. Refresh transitive dependencies viacargo update. This movesrustlsto 0.23.45, which closes RUSTSEC-2026-0285, TLS 1.3 handshake messages accepted across encryption level boundaries. - The MCP server answers an
initializerequest for protocol 2026-07-28 with 2025-11-25, the newest revision that still has aninitializehandshake (rmcp 3.5). Clients on 2026-07-28 useserver/discoverand per-request metadata, which work as before.
0.6.1 - 2026-08-24
Changed
- Refresh dependencies via
cargo update, includingrmcp3.1.4. This movesh2to 0.4.18, which closes RUSTSEC-2026-0258, an unbounded queue of empty HTTP/2 DATA frames.
0.6.0 - 2026-08-13
Changed
- The MCP server speaks protocol 2026-07-28. Older clients still negotiate 2025-06-18.
- Truncated table cells now end with
…instead of...(comfy-table 8).
Fixed
- Removed a latent abort on
1nt refreshand any command that had to populate a cold cache. The cache fetches over a blocking HTTP client that owns a runtime, andmaindropped it inside an async context. Release builds, which is what the published binaries are, happened to survive this. Debug builds hit it every time, on the CLI and on the MCP server.
0.5.3 - 2026-06-17
Fixed
- Resolve the bundled MCP server via
${CLAUDE_PLUGIN_ROOT}/bin/1ntinstead of a bare1ntcommand. Plugin hosts spawn the stdio MCP server without the plugin'sbin/onPATH, so the bare name failed with "Executable not found in $PATH".
Changed
- Refresh transitive dependencies via
cargo update(drops the duplicatethiserror1.x and the stalewindows-sys0.45 backend).
0.5.2 - 2026-05-28
Changed
- Bumped direct dependencies:
clap4.6.1,geo0.33.1,reqwest0.13.4,serde_json1.0.150,tokio1.52.3,zip8.6.0. - Refreshed transitive
randto 0.9.4.
0.5.1 - 2026-05-27
Fixed
- Refresh transitive
rustls-webpkito 0.103.13 to clear RUSTSEC-2026-0104.
0.5.0 - 2026-05-26
Added
- Add
1nt mcp, a stdio MCP server exposingnear,search,spot,list,status, andrefreshtools. - Add Codex plugin metadata and marketplace packaging alongside the existing Claude Code plugin.
Changed
- Make the plugin shim and binary-sync hook work with Codex plugin environment variables as well as Claude Code's variables.
0.4.1 - 2026-04-21
Fixed
- Switch cache TTL constants to
Duration::from_hoursand the filter check inoutput.rstoOption::is_none_or, clearing two new clippy lints introduced in Rust 1.95 (duration_suboptimal_units,manual_is_variant_and). - Refresh transitive
rustls-webpkito 0.103.12 to clear RUSTSEC-2026-0098 and RUSTSEC-2026-0099 (name-constraint handling).
0.4.0 - 2026-04-21
Added
- Ship
bin/1ntshim so the Claude Code plugin works without a separately installed1ntbinary. The shim prefers any user-installed1ntonPATH; otherwise it reuses (or lazily downloads) a plugin-managed copy from GitHub releases matching the plugin's declared version. - Add
SessionStarthook (hooks/ensure-binary.sh) that keeps the plugin-managed binary in sync in the background, never blocking session startup.
Notes
- The shim and hook prefer
jqto parseplugin.jsonbut fall back to a pure-bashsedextractor whenjqis not onPATH, so first-run works on stock macOS, Alpine, and slim Linux containers.
0.3.0 - 2026-03-30
Changed
- Bumped
actions/checkoutfrom v4 to v6 - Bumped
actions/upload-artifactfrom v4 to v7 - Bumped
actions/download-artifactfrom v4 to v8 - Removed private-repo
checks: writepermission workaround from CI (repo is now public)
0.2.0 - 2026-03-30
Fixed
- Geocoding failure now returns exit code 3 (
not_found) instead of 1 - Plugin skill permission now includes unnamespaced
Skill(1nitetent)for auto-invocation without user approval - CI audit job now has
checks: writepermission for private repos
Changed
- Bumped
zipdependency from v2 to v8 - Bumped MSRV from 1.85 to 1.94
0.1.0 - 2026-03-30
Added
nearcommand with Haversine distance filtering, Nominatim geocoding, and optional--searchtext filtersearchcommand with case-insensitive text matching and optional--nearspatial filterspotcommand for full detail view with HTML-stripped descriptionslistcommand with configurable limitrefreshcommand for forced cache re-download and re-enrichmentversioncommand showing cache status and spot count- GeoJSON caching with 1-day TTL
- GeoNames reverse geocoding with 30-day TTL, admin1 name resolution
- Output formats: table (TTY default), JSON (pipe default), NDJSON
- Field filtering with
-Fflag - Structured JSON error output for agent consumption
- Semantic exit codes (0-5)
- Claude Code plugin with pre-approved permissions
- Skill with decision tree and compound query documentation
- PostToolUse nudge hook for skill discovery