Reliability Feedback and Private Support¶
AgentFEM offers an optional minimal anonymous reliability signal to improve the free, open-source software. Telemetry is off by default. No CLI outcome is collected, queued, retried, or uploaded unless the user explicitly opts in. Finite-element and AI workflows remain fully independent of this service.
Voluntary community support¶
Community support is not telemetry. After a healthy first installation or an important upgrade, AgentFEM may show one short invitation per major/minor release series:
The default command performs no network request and no account action. It can remember locally that the invitation was shown, or that the user has already supported the project; that record contains no account identity or token. An AI agent must ask before checking or changing a user's GitHub account.
With explicit consent, an existing authenticated GitHub CLI can be used for a one-command Star:
This command is never called by installation, upgrade, doctor, or ordinary
simulation. It uses the GitHub CLI's existing login, saves no token or account
identity, and records the completed choice locally so later releases do not
ask again. A read-only status check remains available separately:
If the user supported the project through another route, the choice can be recorded locally without contacting an account:
AgentFEM never stars, follows, posts, or uploads anything automatically. The
--star flag itself is the explicit instruction to perform that one action. A
Star, Discussion, citation, or installation report never changes software
access, numerical behavior, verification, support priority, or update
availability.
Distribution signals are different¶
PyPI and conda-forge accumulate package
availability and aggregate download signals as people install normal releases;
pip and mamba are installers, not social networks.
TUNA is a synchronized
access route, not a per-project rating system, and mirror traffic should not be
presented as an upstream download count. AgentFEM therefore never asks an
installer to manufacture engagement. Public trust should come from maintained
releases, reviewed conda-forge recipes,
reproducible reports, independent use, citations, and voluntary GitHub
participation.
What basic reporting contains¶
Basic reporting requires explicit consent:
agentfem telemetry status
agentfem telemetry basic # explicit opt-in
agentfem telemetry on # compatible alias
agentfem telemetry off
agentfem telemetry route auto # or: global / china
Selecting a route does not enable telemetry. Turning reporting off revokes consent and deletes every unsent automatic event, retry/backoff record and local event preview. Local scientific results, failure diagnosis and user-created support bundles are unaffected.
An upgrade does not treat a historical mode=basic setting as consent because
older releases did not record whether that value came from a user or the old
default. Such configurations migrate to off, and their unsent events are
discarded. A current explicit-consent record is retained. Operators may also
opt in for a process by setting AGENTFEM_TELEMETRY=basic; endpoint or route
environment variables alone never authorize reporting.
One event contains only:
- AgentFEM, Python, DOLFINx and petsc4py versions;
- operating-system family, CPU architecture and AgentFEM platform route;
- MPI vendor and rank count;
- CLI command, completed/failed status and a coarse duration bucket;
- for a failure, its stable AFM code, execution stage, exception class and an anonymous failure fingerprint.
It never contains model definitions, meshes, material parameters, source code, project or file names, filesystem paths, result values or fields, exception messages, or tracebacks. Events are capped at 8 KiB, a maximum of 64 events is queued locally, successful use is sampled at most once per day, and delivery has a 1.5-second total network budget followed by exponential backoff. Network failure never fails a simulation. The event does not contain the client's activity timestamp; the collector supplies only the UTC day used for aggregate reliability counts.
After opt-in, use agentfem telemetry show-last to inspect the exact latest event, including
after successful delivery. This local snapshot follows the same strict schema;
agentfem telemetry off deletes it together with every unsent event. If the
first project-owned endpoint is temporarily unavailable, AgentFEM tries the
next reviewed route within the same bounded delivery budget. It sends an event
through the first successful route only. If all routes are unavailable,
AgentFEM keeps only the bounded local queue and never fails a simulation.
There is no background sender: delivery is attempted only from an opted-in CLI
process or an explicit agentfem telemetry flush command.
Repeated failure and Agent assistance¶
Failure repetition is counted locally by a message-free fingerprint. After the same failure occurs three times in one AgentFEM version, the CLI suggests:
diagnose explains the latest execution locally. assist creates a private
directory containing a task for Codex or another AI agent, sanitized execution
structure, runtime inventory and integrity manifest. Nothing is uploaded.
For a report that the user can inspect and send manually:
Creating a GitHub issue is a separate, explicit action and requires an authenticated GitHub CLI:
AgentFEM first searches for an open issue carrying the same fingerprint to reduce duplicates. The issue contains only the sanitized report; confidential model evidence must never be attached automatically.
This escalation benefits the reporting user as well as the project: one confirmed report can lead directly to a diagnosis, bug fix, clearer message, or generally useful capability. It is never an automatic extension of basic reporting.
Collector boundary¶
The reference collector in services/reliability-collector/ validates the
same strict schema and stores daily aggregate counts. Random delivery IDs are
retained for seven days only for retry idempotency. It does not store raw
events, source IP addresses, user identities, exception text, or scientific
data. The 0.3.1 endpoint is project-owned and passed health, rejection and
aggregation smoke tests before publication; an unowned placeholder remains
forbidden.
Independent delivery routes¶
The packaged endpoint manifest can declare more than one reviewed HTTPS route.
auto uses the declared order and remembers the last successful route;
global or china moves that reviewed route first. AgentFEM does not infer a
user's location from an IP address, locale, or model path. One batch stops after
the first accepted response, so failover does not intentionally duplicate it.
The global Cloudflare route and Tencent Cloud route are independent aggregate
collectors. Both validate the same exact schema and immediately reduce valid
events to daily counters. The Tencent function never reads or stores Function
URL headers such as the transport address, and its private COS bucket accepts
only aggregate objects through an SCF runtime role. Route failure changes only
delivery; it never changes, enriches, or reinterprets a scientific result. The
deployable Tencent reference and contract tests live in
services/reliability-relay-tencent/.