Releases: TantiE100/pktctl
Releases · TantiE100/pktctl
Release list
pktctl 0.2.2
Fixed
describe_ipcadvertised an output schema without"type": "object"at its
root, which MCP requires. Clients built on the MCP TypeScript SDK, such as
mcp-proxy, rejected the wholetools/listbecause of it. The MCP E2E test
now checks that every tool's input and output schema is an object.
pktctl 0.2.1
Added
- Releases also publish
ptmp,pktfileandpktctlto crates.io, through
crates.io trusted publishing: no token is stored, and a crate already
published at the version is skipped. Pull requests that touch the release
machinery package and verify the three crates without uploading them.
pktctl 0.2.0
Added
-
Releases: a
vX.Y.Ztag builds pktctl for macOS (Apple Silicon and Intel),
Linux (x86_64 and ARM64) and Windows, attests each archive's provenance and
publishes a GitHub release withSHA256SUMSand the CHANGELOG section as
notes.cargo binstall pktctlfinds those archives. -
Without
PKTCTL_ADDR, pktctl looks for Packet Tracer on ports 39000 to 39009
and connects to the first one where the PTMP handshake with its credentials
succeeds. Packet Tracer moves to 39001 when 39000 is still taken, for example
right after a crash, and pktctl now follows it without a restart.status
reports the address inaddr.
Changed
- The README is organized for new users: an introduction, installation in five
steps with setup for Claude Code, Claude Desktop and Cursor, the tools grouped
by task with example requests, configuration and troubleshooting. The full
tool table moved todocs/tools.md. - pktctl has a logo: an icon and wordmark for light and dark backgrounds, a
simplified icon for small sizes and a social preview image, indocs/assets. - The IPC index generator is a Rust crate,
tools/ipc-index, and reads the
class files out of the framework jar itself. It needs no JDK and nojavap,
andmake checknow compiles, lints and tests it with everything else.
Fixed
drawdrew circles about 0.7 times the requested size, with the given centre
as their top left corner, always with a black outline, and could shift both
circles and lines with the view's scroll. These are faults in Packet Tracer's
owndrawCircleanddrawLine, sodrawnow writes the shape into the
network file and reopens a temporary copy: centres, radii and colours come out
exact. It also draws rectangles and takes afillcolour;widthis gone,
since Packet Tracer stores no line width.list_drawingslists rectangles too.call_ipcrefusesLogicalWorkspace.get{Ellipse,Rect,Line,Polygon}ItemData,
which crash Packet Tracer 9.0.1.- A PTMP session kept its socket open forever once Packet Tracer went away: the
writer task waited on its queue and never released its half of the
connection. Besides leaking a descriptor per lost connection, the half-closed
sockets held port 39000 after a Packet Tracer crash, which is what pushed the
restarted Packet Tracer to 39001. The writer now stops when the session closes. save_networkchecks that the target folder exists before saving. A missing
folder made Packet Tracer show a dialog that blocked every IPC call until
someone clicked OK.- A method taking a generic argument was recorded as taking two: the old
generator split the printed Java types on every comma, so
OSPFAreaNetwork.setIpAndMask(Pair<IPAddress,IPAddress>)came out with two
parameters and a parameter namedPair<IPAddress. - Seven tools could return structured content their own
outputSchema
rejected, so clients that validate it (Claude Code among them) turned a
successful call into an error:list_ports,configure_ios,list_models,
list_simulation_events,add_module,remove_moduleand
remove_locationleft out fields the schema marked as required whenever they
were empty. Those fields are optional in the schema now, and the MCP E2E
client checks every tool result against itsoutputSchema.