Repository navigation
v0.1.0
Bug Fixes
0303487: Accept explicit slash-prefixed UUIDs as opaque group-file identifiers so verified file messages can produce download references, without allowing local paths or changing byte-only downloads.a5af76b: Handle NapCat typing notifications with a zero group sentinel without stopping event subscriptions.f2eb699: Recognize a revalidated, identity-matching anchor-only history page as the accessible backend boundary; retain partial results for other repeated pages.be8a4d7: Revalidate the complete instance and installation snapshots before acknowledging stopped state. Preserve concurrent registration changes and the completion proof, and report an unknown outcome without repeating native stop effects when acknowledgement no longer matches.697ad8e: Launch the native loader from its verified per-run working directory instead of the fixed installation, preserving absolute loader arguments and launch-input binding.dea5378: Remove runtime refusal based solely on unresolved NapCat licensing scope. Keep license review informational and retain artifact integrity, compatibility, process ownership and account checks. Allow installation manifests without an authorization annotation while accepting existing signed annotations.e5bd8fc: Recover the original credential namespace after packaged-host directory redirection, verify QQ entries embedded in ASAR archives, accept standard Windows environment names, and pass ordinary drive paths to the upstream launcher. Validate native inputs before committing dispatch intent.bd640a3: Coordinate native credential calls across CLI processes with a bounded, noninheritable, thread-bound mutex. Preserve credential targets and persistence, reject unavailable or abandoned coordination, and retain concurrent recovery coverage without credential or effect retries.c7f1317: 加入单源契约防回退门禁及完整帮助核对,保留旧集合游标的规范化快照摘要;补齐文本标准长度约束并收敛响应分派维护点。26353ec: Reject stale successor-preparation retries after the successor was explicitly stopped, instead of starting another run through restart or update recovery.9072544: Include the offline not_started status in the response schema and explicitly mark its identity unverified. Keep empty-state status free of credential access, state creation and application probes.43bfee9: 输入 Schema 按 Clap 实际解析类型派生,必选、互斥和附件组合预算复用实际校验规则;非法标识、时间与范围在访问状态前拒绝。9b49ee8: Skill与命令自省从实际输出类型生成契约,删除通用JSON响应迁移桥,恢复已确认账号结果的必需作用域约束。aa5c6cd: 事件流、通知和恢复统计改用实际 Rust 枚举派生 Schema,预流错误复用实际错误类型,删除最后手写输出契约。2a6e5fb: 安装管理命令从实际 Rust 输出类型派生 JSON Schema,统一响应常量和容器,补充严格契约验证;保留现有 JSON 字段和退出行为。75e9d30: 实例状态、生命周期和诊断输出改用实际 Rust 类型生成 Schema,删除对应手写响应契约并保留现有字段。a24d900: 消息、递归转发和媒体读取使用实际类型生成 Schema;历史和导出共享类型化分页及部分结果容器,移除对应手写输出定义。a1c78cd: 联系人、群、成员和最近会话改用类型化输出与派生 Schema,集合分页精确区分结束页和续页,移除对应手写响应定义。68c8845: 发送、回复、请求查询和附件结果从实际类型生成 Schema,统一附件指纹与状态;公共错误详情和下一步提示使用封闭类型,保留账本兼容与防重行为。61dea2f: Validate the running NapCat version before status reports readiness or acknowledges a changed account, using the same compatibility guard as domain operations.
Chores
c1d86f7: Add Windows quality checks and Semifold-managed GitHub releases with validated CLI assets and workspace lock synchronization.38f4d4f: Make agent-assisted setup the README entry point and separate confirmed user-facing issues from internal verification notes.de7cde7: Prepare the initial stable 0.1.0 release through Semifold prerelease graduation.526dfbc: Clarify backend member-role snapshot freshness in command help, discovery skill and usage documentation.3c06226: Use QQ CLI as the display name, guide GitHub visitors through agent-assisted installation from a repository URL, and credit NapCat.feffbda: Remove the Semifold setup action's temporary installer before release staging, reject unexpected workspace changes, and reuse the checked Windows target when packaging.9898582: Document the shared private HTTP transport and separate OneBot, management protocol and runtime ownership responsibilities; correct the obsolete installation license gate description.c32680a: Document code ownership and maintenance entry points, separate large unit-test modules, and add architecture boundary checks to the standard development validation workflow.d0db044: Define the complete coding-agent CLI contract for profiles, conversations, history, messaging, media, events, discovery, recovery, and delivery acceptance; align project guidance and implementation tracking.9a873f6: Document task-focused QQ guidance and provide a portable skill package with recipient discovery, bounded reads, replay-safe writes, media, events and runtime instructions. Document event streaming output, bounded stdout behavior and remaining real-session acceptance limits. Explain event schema discovery and pre-ready errors separately from stream records. Document offline self-owned attachment cleanup, retention and preserved unknown outcomes. Explain attachment input limits and unobservable transfer receipts without authorizing resend. Document conditional file-byte downloads, ambiguous image aliases and missing backend-byte capability without retry guidance that could change sources. Explain scoped image HTTPS downloads and URL-suppressed history references without exposing raw URLs or suggesting alternate sources. Explain unverified preparation phases and offline stopped-instance receipt lookup without treating planned endpoints as live APIs. Document verified transport kernels as separate from managed startup acceptance and specify the WebSocket handshake receive budget. Document signed-runtime-only transport selection, synthetic CLI coverage and remaining startup, login recovery and real protocol acceptance.cc25695: Document the planned NapCat HTTP CLI commands, configuration, JSON output, guarded text sending, and implementation scope; update user-facing project and contribution guidance.4fbbf7a: Explain local checkpoint ownership, replay limits and verified message/recall/recovery behavior in the runtime guides.3bb3b5c: Clarify that expanded forwarded messages contain backend-returned nodes and may omit messages visible in QQ; record the observed upstream completeness limit.a62991f: Document verified contact/group/recent-conversation discovery and detail reads, including the display-field filtering scope of recent conversations.d20fec8: Document verified group details and member pagination, text send/reply, incoming events, history, search and export.4b57e00: Document verified private image and file downloads with byte-for-byte matching source attachments.1d829e4: Document verified NDJSON export, checkpoint continuation, completed resume and filtered export.6a5d0a3: Document verified text, image and file message reads and distinguish ordinary expansion from unverified real forwarded-message expansion.ed50d3f: Document verified scoped text search, cursor continuation, time filtering and empty results.f2eb699: Document the verified private history continuation and image/file sending workflow without claiming full archives or observable transfer completion.242eee1: Document installation acquisition limits, current authorization refusal, and the remaining real download verification.9a873f6: Define CLI resource and task boundaries, retaining distinct contacts, groups, conversations, replies and exports; clarify automatic instance selection, recoverable installation ownership and removal, concise output and safe retries.e7c20a8: Document stopped-instance unregistration, preserved runtime data and removal result semantics.746eb8c: Document verified stopped-instance removal, idempotent completion and preservation of installation/runtime/request data; keep the runtime task guide within its existing agent text budget.cb4dae9: Document verified restart and stop/start recovery, local compatibility evidence and the need to follow status after login-required or uncertain startup results.f94182d: Document the verified private text send, receive event and recent-history workflow, including the remaining no-progress pagination boundary.dcc390c: Document bound-service login confirmation and the remaining initial discovery, QR and startup lifecycle work.8ab8eb6: Extend the CLI design with agent-managed NapCat preparation, configuration, startup, readiness and recovery, including login challenges and shared-window lifecycle constraints.573b845: Document verified simultaneous login and reuse of two distinct experimental accounts, explicit selection, and shared QQ data limitations.bd640a3: Document the separate native credential synchronization boundary and keep unsafe allowances scoped to explicitly audited capability modules.5730d89: Document verified native Ctrl+C subscription cancellation, exit code 130 and continued QQ availability.4e9d83c: Document explicit stop effects on the shared QQ window, preserved state, completion reuse and unknown-outcome handling in user and agent guidance.0303487: Document live private replies, self-only group mentions, and byte-identical group image/file download checks, distinguishing API evidence from pending window confirmation.697ad8e: Document instance reuse verification, isolated launch working directories and remaining real lifecycle prerequisites.d9c1a68: Update the CLI technical plan and development guidance to use Rust and Cargo while preserving the existing NapCat HTTP command contracts.b0bebab: Document signed first-service discovery, its connection limits, and remaining real QQ compatibility and startup verification.e51d9c0: Document verified start reuse and distinguish it from the unfinished new instance lifecycle.451fc93: Document startup input check ordering, candidate limits, compatibility refusals and remaining dispatch verification.cfb8816: Document fixed-version live maintenance acceptance, explicit trial/deadline usage and the unresolved Windows protection observation.a844d25: Document pending-maintenance start/restart guidance and original-material requirements before source-version recovery.da02b62: Clarify explicit installation acquisition before startup or updates, and document verified cache reuse, referenced-installation protection, uninstall and reinstall behavior.0f52b15: Record the requested preserve bump policy for the initial release configuration.fece2cb: Document the two fixed Framework artifact versions and distinguish static artifact review from real QQ compatibility.a0f6b9b: Align stream scope, checkpoint selection and partial-exit instructions; audit every command schema/help entry and task route while documenting remaining response-schema precision limits.dea5378: Clarify the distinction between an independent API client, local execution, official downloads and redistribution under NapCat's fixed custom license; remove documentation that describes unresolved licensing as a runtime gate.0356d93: Link agent setup instructions and release downloads to the public noctisynth/qq-cli repository.e5bd8fc: Document first-combination startup trials and preservation of the original operation key after uncertain results.9f6a929: Explain status loginObservation hints, their separation from verified account identity, and management failure handling in the runtime skill and public CLI documentation.100b0c5: Preserve native launch failures in test diagnostics instead of masking them with an empty recovered handle.7234c1f: Document restart recovery and distinguish an uncertain original operation from a new maintenance action on its successor.7c3a2d2: Rewrite the README as a user guide with setup, agent workflows, instance management and practical limitations.26353ec: Document rollback selection, missing-history behavior and the distinction between recovery of an original action and a new maintenance action.66faee7: Make the agent skill self-contained for CLI installation, PATH recovery, skill export destination requirements and first QQ login; remove stale development notes.786e44b: Move internal engineering context out of public documentation and exclude it from source distributions.83798b9: Document the phased migration to actual serialized Rust contracts with Schemars-generated output schemas and Clap-derived inputs.c5002f9: Explain stopped-instance start, successor preparation recovery and the requirement to verify the account again after login.91a5d0e: Document installed-target update behavior, missing-installation actions and recovery without automatic restart retries.3a1cb0f: Verify stable instance creation keys across four independent synchronized test processes, checking one fresh reservation, one registration and one shared run without runtime preparation or process dispatch.9d6ea85: Explain uninstall protection for authenticated rollback references and unpublished successor targets.
New Features
-
242eee1: Connect napcat install to lazy local import and fixed HTTPS acquisition with catalog and authorization checks before input access or credential initialization. Reuse verified cached installations without reopening sources. Keep the unresolved upstream authorization gate closed. -
87ade17: Add automatic instance creation with a durable internal request key, resume only its matching signed preparation, and reselect instances under the startup lock. Ordinary start returns a precise account-free login checkpoint for a pending instance without dispatching or contacting its API. Preserve authorization and compatibility gates and refuse corrupt or removed creation state. -
c3acb9c: Bind verified startup inputs, prepared runtime material, original loader arguments and filtered environment to the persistent startup target before the once-only native dispatch. Reject changed complete inputs before allocating a job or creating a process. -
451fc93: Add bounded read-only startup input checks covering authorization, unique pinned installation integrity, QQ installation discovery and exact Framework compatibility evidence. Keep actual startup blocked until lifecycle verification is complete. -
dcc390c: Let status confirm login through an existing signed service binding, promoting only a matching online identity to ready. Preserve unverified status before service binding and reject concurrent instance or installation changes. -
b0bebab: Persist expected service image and endpoint before process creation, then discover the exact same-job service through one bounded zero-byte connection from pending status. Retain and sign its binding before API use; recover existing bindings without reconnecting or guessing legacy inputs. -
a844d25: Persist authenticated version-maintenance intent before stopping its source run. Protect the target, block original-version start/restart, transfer the authority to generation publication atomically, and refuse signing-key replacement when a registry maintenance marker remains. -
4fbbf7a: Add scoped signed event checkpoints, bounded conversation history recovery on resume/reconnect, stable live/history deduplication and explicit recovery summaries without claiming continuous delivery. -
e5bd8fc: Allow an explicitly requested new-instance compatibility trial bound to exact verified inputs, without recording unsupported combinations as successful evidence. -
9a873f6: Implement modular Rust command discovery, scoped configuration and credentials, bounded HTTP reads/history/export and guarded atomic media-byte decoding, durable text and attachment send/reply intents with strict receipt/schema validation and scoped unknown-result guidance and full synthetic send/reply CLI validation, signed attachment ownership with quota and journaled pruning, and event streaming with bounded stdout and typed output schemas.Add portable task skills, verified installation preparation/removal primitives and layered QQ/NapCat compatibility diagnostics. Runtime lifecycle, full media integration and complete product acceptance remain under development.
Add a separately bounded media-byte transport and scoped file-download CLI with fail-closed filename aliases. Share message segment definitions across event, message get and history/search schemas, including partial-result pagination contracts. Carry one cooperative command deadline through preparation and domain operations instead of restarting its budget at each stage. Bind media references to message element positions and audited image resource identities without persisting URLs or rotating keys; reject ambiguous legacy filename references. Add dedicated certificate-verified image HTTPS streaming from fresh message elements, isolated from backend credentials, with guarded atomic output and synthetic TLS/account-change verification. Add fixed-release pre-login configuration rendering with loopback-only endpoint roles, separate random API/admin/JWT secrets and no account preset. Add signed private runtime preparation with protected credential recovery, claimed partial-file repair, explicit no-replace Win32 publication and phase-gated API access. Preserve offline write receipts while stopped; actual process startup and listener ownership remain pending. Add a signed at-most-once startup dispatch journal with durable intent before starting state, conflict checks and conservative interruption/receipt-failure recovery. Dispatch does not imply verified process or listener ownership. Reserve each instance/run before its request index and registry transition, preventing a different request key from dispatching the same run after interrupted persistence. Add query-only pinned process identity observations using exact creation ticks, image path and zero-time exit checks; ownership and listener binding remain pending. Add an isolated, documented Win32 job boundary using fixed Microsoft bindings, private random names, owner/System access and bounded member snapshots. Preserve processes when handles close; native-loader descendants and complete lifecycle integration remain under development. Add atomic root-process creation with a job attribute list, inheritance limited to a query-only job handle and explicit NUL streams, bounded Unicode command/environment encoding and identity capture from the original returned process handle. Root lifetime retention is verified with original test children; native-loader descendants and lifecycle integration remain pending. Add query-only job retention in a pinned, identity-checked job member, with a noninheritable target-owned handle and conservative unknown outcomes. Original loader/descendant controls verify retention after root exit; durable once-only orchestration and actual QQ compatibility remain pending. Add bounded native IPv4/IPv6 TCP ownership verification for the exact connected loopback stream, matching server tuples to pinned job members before any protocol data. Add an owned OneBot HTTP backend using hyper on the verified socket, shared envelope/media decoding, bounded framing and absolute deadlines. Independent synthetic services verify authentication gating, response limits and no automatic retries; full managed startup remains pending. Add owned WebSocket connection verification before Upgrade/Bearer on the same socket, sharing existing handshake/frame handling and rechecking native ownership afterward. Bound handshake reads to 32KiB before enabling the stream budget; full event recovery and real protocol acceptance remain pending. Add signed, once-only retention journals within the existing state transaction. Persist intent before handle duplication, bind the complete target, reuse historical results and preserve unknown outcomes after interruption; managed lifecycle integration remains pending. Connect fresh startup intents to native dispatch through signed per-run Job journals, persisting the random Job identity before process creation. Refuse repeat dispatch and reopen only the recorded original root with exact process identity and Job membership; full startup trust gates and real descendant compatibility remain pending. Discover only a connected loopback stream's server inside its authenticated Job, matching the exact expected image before reusing stream ownership verification. Add owned event Source connections and drop stale sockets before replacement attempts; full startup and login recovery remain pending. Persist verified service identity and endpoint in the signed run record after once-only Job retention. Recover against the selected run and installation digest, refuse service rebinding and never repeat retention to repair a missing established journal. This does not mark login/API readiness or replace startup trust gates. Route command, event and diagnostic transports through a shared instance-scoped factory. Native run records and managed credential keys cannot downgrade after verification failure; cached write receipts remain available offline. Synthetic CLI fixtures now use original Job-contained Rust relays; CLI traffic always requires signed runtime ownership. Refuse signing-key regeneration when reference or protected lifecycle/attachment namespaces already contain state, preserving original records after credential loss. Add independent managed CLI acceptance for signed service recovery after parent handles close, scoped contact reads, account-change rejection and corrupt/missing-record no-downgrade checks. Migrate send/reply/media/event fixtures to signed Job services and remove every unverified CLI transport fallback.
-
25052e7: Add the Rust CLI command skeleton with offline help, version, validated arguments and structured errors; migrate Semifold to Cargo metadata and add locked offline checks. Backend actions remain unimplemented. -
c462cfd: Add a Windows one-command installer for the latest verified GitHub release and enable Semifold crates.io publishing under MIT OR Apache-2.0. -
86d8375: Share bounded three-port leases between instance reservation and native startup. Hold the exact planned endpoints through the signed dispatch journal and release immediately before creation; reject busy ports before allocating a job without changing the plan. -
cb4dae9: Persist signed exact local Framework startup observations during explicit lifecycle preflight, requiring the original dispatch input hash and owned live process/identity, and reuse them in startup and read-only diagnostics. -
2b32a85: Add a bounded, typed WebUI login observation protocol with separate management authentication, fixed routes, filtered phase hints and no automatic retries. This kernel does not initiate QQ login, expose credentials or identify an account; managed transport and CLI integration remain separate work. -
f701331: Connect explicit instance creation to guarded runtime preparation, once-only native dispatch and verified prelogin retention. Preserve creation keys across retries, return an account-free login checkpoint with a precise status action, and refuse replay after an uncertain launch. Production authorization and compatibility gates remain required. -
9898582: Add fixed-route management HTTP over verified process-owned sockets, sharing framing, byte budgets and identity checks with OneBot. Keep authentication and status credentials separate, reject redirects without retry, and refuse foreign endpoints before sending management data. Signed runtime recovery and CLI integration remain separate work. -
0fddad9: Add the internal owned-instance stop kernel with a shared lifecycle lock, authenticated stop intent and completion records, prelaunch cancellation recovery, and a separate native Job termination capability. Public stop command integration and full lifecycle acceptance remain pending. -
26353ec: Expose authenticated owned-instance rollback through the shared version-maintenance pipeline. Resolve and recheck the original intent or previous installation, resume pending rollback preparation without toggling versions, and refuse missing history or conflicting actions before stopping a run. -
9f6a929: Expose bounded login progress in status through the original signed control binding while OneBot is not ready. Keep account identity unverified until OneBot confirms it; reject management failures and concurrent run changes without repairing missing material or retrying authentication. Add a strict status response schema.Check the backend version before identity queries, and distinguish connection refusal or an absent identity from malformed transport or identity responses so protocol failures cannot become login hints.
-
7bd19e8: Add the internal stopped-instance successor-run reservation and recovery protocol. Preserve instance identity and old material, use signed generation claims and existing creation records, protect internal operation keys and retain authenticated default-instance ancestry. Public startup and restart integration remain pending. -
4e9d83c: Connect napcat stop to authenticated owned-instance maintenance without entering the messaging API, with a strict response schema, deterministic instance selection and reusable completion proofs. -
1140739: Extend offline request lookup to signed instance creation and dispatch records, with original instance/run identity, explicit unverified registration state and precise next actions. Enforce shared request keys across message writes and startup, reject inconsistent or conflicting records, and preserve pending outcomes without provisioning credentials or repeating operations. Update response schemas and Agent task guidance. -
1773ca4: Recover existing signed control process capabilities and original runtime management secrets without repairing missing records, retaining replacement handles or inspecting live logs/cache. Validate current instance, run, installation, endpoint and credential bindings before use. Public status integration remains separate work. -
e7c20a8: Implement napcat remove with authenticated stop prerequisites, durable registration removal recovery and exact default checkpoint retirement. Preserve credentials, runtime material and write history, and reuse completed removals without requiring the old installation. -
db6cc93: Add durable account-free instance reservations keyed by creation request, with signed claims before registration, held local endpoints, exact interrupted-plan recovery and no resurrection of removed instances. Protect creation authority when its signing key is missing. -
7234c1f: Implement owned-instance restart under one lifecycle lock, with startup preflight before stop, authenticated successor reuse and unknown-dispatch refusal. Share verified startup responses and their schema with start. -
393c449: Add a guarded pre-login job retention primitive using a signed control endpoint and full process identity. Require subsequent account API binding to match that identity and refuse missing retention journal repair. Keep the real Framework compatibility and public startup integration gates closed. -
e51d9c0: Reuse a verified ready instance from napcat start with live version and account checks. Reject version conflicts and changed accounts without acknowledging them, and prevent --new from reusing a running session. -
6d3e6ab: Add lifecycle-transaction startup input revalidation that invokes subsequent operations only when installation identity, QQ paths and the complete supported compatibility tuple still match. Keep dispatch and loaded-file verification requirements separate. -
fece2cb: Add the independently audited NapCat v4.18.37 Framework artifact to the fixed catalog, retaining v4.18.38 as the default. Bind each archive and payload to its own digest without inheriting runtime compatibility. -
c5002f9: Connect stopped-instance start and successor preparation recovery to the shared preparation, once-only launch and prelogin retention pipeline. Preserve instance identity, use the selected installation version and original signing authority, and keep real compatibility checks before allocation or dispatch. -
91a5d0e: Connect installed-target version updates to startup preflight, owned stop and authenticated successor preparation under one lifecycle lock. Reuse the current target or original successor, refuse unknown dispatch, and serialize uninstall across the preflight-to-claim window. -
9cd343f: Add read-only prepared runtime verification inside an existing lifecycle transaction. Verify signed ownership, complete config and credential consistency without repairing material or regenerating secrets before startup dispatch. -
9d6ea85: Add authenticated cross-installation run metadata with backward-compatible generation records. Retain the latest rollback installation across ordinary restarts and protect it from uninstall; keep version-switch dispatch separate from this preparation kernel. -
cfb8816: Allow explicitly authorized exact-combination trials during NapCat version updates with a total operation deadline, retaining the existing immutable-input and negative-evidence checks.
Refactors
-
71b24a7: Extract an internal stop entry for lifecycle composition while retaining the public stop lock and all original ownership and completion checks. -
c32680a: Organize Rust code into explicit subsystems and focused application use cases. Separate startup presentation from lifecycle capabilities, share ready-result rendering, isolate native run journals/creation/service retention, move concrete diagnostic adapters into application composition, and keep media byte decoding below messaging use cases. Preserve CLI behavior and the narrow unsafe boundary.Scope the runtime-material ignore rule to the project root so lifecycle source modules remain tracked.