Urgent.News

What's breaking now, across thousands of outlets.

Tech

Your Project Version and APC Version Answer Different Questions

A project can change without changing its agent-context format. That is why APC's .apc/project.json has two version fields: version for the project and apc for the APC format the project expects. Treating them as one number makes routine releases look like context migrations, or hides a real compatibility change behind an ordinary release. APC is the portable, repository-owned context layer:…

A single project can evolve without altering its agent-context structure. This is the reason APC maintains two version fields within its .apc/project.json file: one for the project itself and another for the APC format the project requires. Considering them as a single number can render routine updates as context migrations or mask genuine compatibility shifts behind regular releases.

APC serves as the portable, repository-owned context layer, encompassing files like AGENTS.md and .apc/. These files accompany the project. APX is the runtime and tooling layer used daily, interpreting that context and executing agents.

To interpret APC metadata correctly, treat the fields separately. The APC metadata specification outlines a minimal structure:

{

"name": "My Project",

"version": "0.1.0",

"apc": "0.1.0",

"created": "2026-05-08T00:00:00Z"

}

The "name" field provides a human-readable identifier for the project. "created" records the timestamp when the APC metadata was set up. The two version values pertain to different entities.

Consider a scenario where a team releases a feature, progressing from version 0.1.0 to 0.2.0. The project's agent files, rules, and metadata remain compliant with APC 0.1.0. The project version can advance to 0.2.0, whereas "apc" stays at 0.1.0. This discrepancy is permissible as they measure distinct aspects.

Now, envision the team refining its context files for a newer APC target format. This signifies a context compatibility decision. Examine the "apc" value alongside the context files together, rather than automatically aligning them with the application's release number. The metadata should reflect the actual context residing on the disk.

Understanding why both values matter is crucial. A reviewer examining a pull request can determine if the change is an application release, a context-format update, or both. A compatible tool can locate .apc/project.json at a constant location and examine the project's stipulated APC target before interpreting its context. APX is one runtime leveraging APC project context, yet the file remains a project artifact, distinct from an APX session record.

This approach also segregates private operational state from the metadata file. Credentials, provider accounts, conversations, caches, and local sessions are managed by the runtime or machine. The project's name and expected format can be reviewed and incorporated into the repository. A minor historical note: early versions occasionally recorded "apf" instead of "apc" for the format version.

The current APC draft advises compatible consumers to tolerate this outdated key during migration, while new projects should employ "apc". This is a compatibility note, not a rationale for including both keys in every new file. When reviewing .apc/project.json, pose three specific questions: Does the version align with the project's intended release?

Does the "apc" value correspond to the format utilized by its context files? If an older "apf" key is present, is this a migration situation? Taking a moment to answer these questions prevents the project's release number from inadvertently serving as a protocol declaration. The minimal APC project example provides a complete starting layout.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Open Source Highlights September 2026: 7 Projects You Should Know

Every week, dozens of exciting open-source projects appear on GitHub – but who has the time to find them all? In this series, I regularly collect the most interesting projects I come across.

  • VoiceBox clones voices from short audio clips in 23 languages
  • Open Design creates UI/UX designs in browser without commercial tools
  • Scrapling optimizes web scraping for AI agents with structured content

forge lint cannot see your request helper: the Jira scopes it never checks

forge lint cannot see your request helper: the Jira scopes it never checks Key takeaways forge lint only recognises a requestJira call when the endpoint is written inline as a literal, template…

  • Forge lint fails to detect request helper calls
  • Jira scope limitations prevent lint tool from recognizing requestJira calls
  • Variable paths from request helpers cause silent drop of calls

More from Saturday 19 September →