Skip to content

docs: refresh 0.0.59 release notes#4790

Merged
cv merged 4 commits into
mainfrom
docs/v0.0.59-release-notes
Jun 5, 2026
Merged

docs: refresh 0.0.59 release notes#4790
cv merged 4 commits into
mainfrom
docs/v0.0.59-release-notes

Conversation

@miyoungc
Copy link
Copy Markdown
Collaborator

@miyoungc miyoungc commented Jun 5, 2026

Summary

  • Add the v0.0.59 release notes from the GitHub announcement discussion.
  • Refresh local inference and credential-storage guidance for the current release behavior.
  • Regenerate the user skills from the updated Fern docs.
  • Tighten release-prep and docs review guidance for generated skills, PR labels, and shared $$nemoclaw command placeholders.

Verification

  • python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx
  • rg "permissive mode|shields down|shields up|shields status|config rotate-token|rotate-token" --glob '*.{md,mdx}'
  • git diff --check
  • npm run docs (rerun outside sandbox after sandbox-only tsx IPC permission failure)
  • npm run typecheck:cli
  • Pre-commit hooks during commit passed, including markdownlint, docs-to-skills verification, gitleaks, commitlint, and skills YAML tests.

Source Summary

Note: the documentation label was not present in the repository, so this PR is labeled with v0.0.59 only.

Summary by CodeRabbit

  • Documentation
    • Updated default model for local Ollama inference setup to qwen3.5:9b
    • Added Nemotron 3 Ultra 550B as an NVIDIA Endpoints model option
    • Clarified credential storage and reuse behavior for post-deployment (day-two) operations
    • Added v0.0.59 release notes covering OpenClaw compatibility, inference options, Hermes messaging sync, and troubleshooting
    • Clarified CLI selection guidance and updated OpenClaw version example in status output
    • Revised release-prep instructions and docs review guidance for CLI alias usage

@miyoungc miyoungc added the v0.0.59 Release target label Jun 5, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 5, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

Documentation updates for v0.0.59 align Ollama inference defaults across guides, expand NVIDIA Endpoints model options, clarify credential storage behavior for day-two operations, add v0.0.59 release notes, and adjust reference/frontmatter and contributor release-prep label wording.

Changes

v0.0.59 Release Documentation

Layer / File(s) Summary
Inference Configuration Updates
.agents/skills/nemoclaw-user-configure-inference/SKILL.md, docs/inference/use-local-inference.mdx, .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
Ollama non-interactive setup examples updated to use qwen3.5:9b instead of qwen2.5:14b, and NVIDIA Endpoints curated model list expanded with Nemotron 3 Ultra 550B.
Credential Storage Day-Two Operations Clarification
.agents/skills/nemoclaw-user-configure-security/references/credential-storage.md, docs/security/credential-storage.mdx
Documentation clarifies that when host environment credentials are empty, day-two operations can reuse credentials already registered with the OpenShell gateway, and credentials should be exported only when creating, replacing, or rotating stored values.
Release Notes and Version Documentation
.agents/skills/nemoclaw-user-overview/references/release-notes.md, docs/about/release-notes.mdx, .agents/skills/nemoclaw-user-reference/references/commands.md
New v0.0.59 release notes section added describing OpenClaw runtime compatibility updates, inference setup improvements, Hermes message routing synchronization, credential/messaging boundary hardening, and enhanced sandbox/preflight diagnostics; example command output version bumped from v2026.5.22 to v2026.5.27.
Reference wording & frontmatter
.agents/skills/nemoclaw-user-reference/SKILL.md, docs/reference/cli-selection-guide.mdx
Reference list bullet rewritten to “Load … when user asks …”; frontmatter description-agent extended to list lifecycle, inference, policy, monitoring, file transfer, and gateway decision topics.
Contributor release-prep label update
.agents/skills/nemoclaw-contributor-update-docs/SKILL.md
Release-prep instructions and Step 10 wording updated to use area: docs, area: skills, and vX.Y.Z labels instead of the prior documentation label guidance.
Coderabbit lint rules
.coderabbit.yaml
Add rule to exempt $$nemoclaw from being flagged and require $$nemoclaw in cross-alias CLI examples for correct generated OpenClaw/Hermes docs rendering.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#4782: Overlaps with user reference and CLI/frontmatter wording changes between $$nemoclaw and openshell.
  • NVIDIA/NemoClaw#4632: Related edits to credential-storage and inference local docs.

Suggested labels

documentation

Suggested reviewers

  • cv
  • prekshivyas

Poem

🐰 I hop through docs and change a model name,
Qwen defaults nudged, and lists grew in fame,
Credentials clarified for future days,
Release notes stacked in tidy, clear arrays,
A tiny nibble of docs — the rabbit’s claim.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: refresh 0.0.59 release notes' clearly summarizes the primary change: updating documentation for the v0.0.59 release, which includes release notes additions and refreshed guidance across multiple doc files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/v0.0.59-release-notes

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

E2E Advisor Recommendation

Required E2E: None
Optional E2E: None

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • None. No E2E is recommended because this PR is documentation, generated documentation-skill content, and review-tooling guidance only. It does not modify installer/onboarding code, sandbox lifecycle implementation, credential storage logic, security boundaries, network policies, inference routing, deployment code, or executable assistant runtime paths.

Optional E2E

  • None.

New E2E recommendations

  • None.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

E2E Scenario Advisor Recommendation

Required scenario E2E: None
Optional scenario E2E: None

Workflow run

Full scenario advisor summary

E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required scenario E2E

  • None. Docs, generated agent skill documentation, and CodeRabbit configuration changes only; no changes under test/e2e-scenario/, scenario workflows, scenario metadata, expected-state contracts, suite definitions, runtime code, or directly scenario-relevant helpers.

Optional scenario E2E

  • None.

Relevant changed files

  • None.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

PR Review Advisor

Findings: 0 needs attention, 1 worth checking, 0 nice ideas
Top item: PR review advisor unavailable

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • PR review advisor unavailable: The automated advisor could not complete: Could not parse JSON from PR review advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/pr-review-advisor/pr-review-advisor-raw-output.txt
    • Recommendation: Re-run the PR Review Advisor or perform a manual review.
    • Evidence: Could not parse JSON from PR review advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/pr-review-advisor/pr-review-advisor-raw-output.txt

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Runtime validation** — Add or identify targeted runtime/integration validation for the changed behavior; do not report external E2E job pass/fail here.. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .agents/skills/nemoclaw-contributor-update-docs/SKILL.md, .agents/skills/nemoclaw-user-configure-inference/SKILL.md, .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md, .agents/skills/nemoclaw-user-configure-security/references/credential-storage.md, .agents/skills/nemoclaw-user-overview/references/release-notes.md, .agents/skills/nemoclaw-user-reference/SKILL.md, .agents/skills/nemoclaw-user-reference/references/commands.md, .coderabbit.yaml.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (7)
.agents/skills/nemoclaw-user-configure-inference/SKILL.md (1)

1-5: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required SPDX license header to this Markdown file.

This file is missing the required SPDX header in Markdown-comment form.

As per coding guidelines: all *.md files must include SPDX headers, and Markdown files must use HTML comments.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/nemoclaw-user-configure-inference/SKILL.md around lines 1 -
5, Add the required SPDX license header as an HTML comment at the very top of
the Markdown file (before the frontmatter) for the skill named
"nemoclaw-user-configure-inference"; specifically insert a line like <!--
SPDX-License-Identifier: Apache-2.0 --> above the existing YAML frontmatter so
the file meets the Markdown SPDX requirement.

Source: Coding guidelines

.agents/skills/nemoclaw-user-configure-inference/references/inference-options.md (1)

1-3: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required SPDX license header to this Markdown file.

This file is missing the required SPDX header in Markdown-comment form.

As per coding guidelines: all *.md files must include SPDX headers, and Markdown files must use HTML comments.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
@.agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
around lines 1 - 3, Add the required SPDX license header as an HTML comment at
the very top of this Markdown file (above the "# NemoClaw Inference Options"
heading and any imports), using the project's standard SPDX identifier format;
ensure the header is an HTML comment so it remains a Markdown comment and
matches the repo's SPDX style for *.md files.

Source: Coding guidelines

docs/security/credential-storage.mdx (1)

2-3: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use Markdown HTML comments for SPDX header in this MDX file.

The SPDX lines are present, but the required Markdown format is HTML comments (not # comment lines).

As per coding guidelines, md/mdx files must include SPDX headers and “use HTML comments for Markdown.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/security/credential-storage.mdx` around lines 2 - 3, Replace the two
plain-text SPDX lines with HTML-comment formatted SPDX headers so the mdx parser
and our guidelines pick them up; specifically, locate the existing
"SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All
rights reserved." and "SPDX-License-Identifier: Apache-2.0" lines in the
docs/security/credential-storage.mdx content and wrap each as HTML comments
(e.g., <!-- SPDX-FileCopyrightText: ... --> and <!-- SPDX-License-Identifier:
... -->), ensuring they remain the exact SPDX tokens.

Source: Coding guidelines

.agents/skills/nemoclaw-user-configure-security/references/credential-storage.md (1)

1-3: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required SPDX license header for Markdown files.

This Markdown file is missing the required SPDX header in Markdown comment format.

As per coding guidelines, files matching **/*.{...md,mdx...} must include SPDX headers, using HTML comments for Markdown.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
@.agents/skills/nemoclaw-user-configure-security/references/credential-storage.md
around lines 1 - 3, This Markdown file is missing the required SPDX header; add
an HTML comment SPDX license header at the very top of the file (before the "#
Credential Storage" heading and any imports) in the form <!--
SPDX-License-Identifier: <LICENSE> --> (for example <!--
SPDX-License-Identifier: MIT -->) so the file complies with the guideline that
all .md/.mdx files include an SPDX header; locate the file content around the "#
Credential Storage" heading and the import { AgentOnly } line to insert the
header.

Source: Coding guidelines

docs/about/release-notes.mdx (1)

2-3: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

SPDX comments should use HTML comment syntax in MDX files.

For Markdown/MDX, the SPDX header must be written as HTML comments rather than # comments.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/about/release-notes.mdx` around lines 2 - 3, Replace the two SPDX lines
that currently use Markdown '#' comments ("# SPDX-FileCopyrightText: Copyright
(c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved." and "#
SPDX-License-Identifier: Apache-2.0") with HTML comment syntax so they become
<!-- SPDX-FileCopyrightText: ... --> and <!-- SPDX-License-Identifier:
Apache-2.0 --> at the top of the MDX file, preserving the exact SPDX text but
using HTML comments instead of '#' markers.

Source: Coding guidelines

.agents/skills/nemoclaw-user-overview/references/release-notes.md (1)

1-3: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required SPDX header in Markdown comment format.

This Markdown file is missing the required SPDX license header (<!-- ... -->) for *.md files.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/nemoclaw-user-overview/references/release-notes.md around
lines 1 - 3, Add the required SPDX license header as an HTML comment at the very
top of the Markdown file: insert a single-line HTML comment like <!--
SPDX-License-Identifier: Apache-2.0 --> (or the project's required SPDX
identifier) before the existing content so the file contains the required SPDX
header in comment format; ensure there is a newline after the comment and that
the original release notes text ("NVIDIA NemoClaw is available in early preview
starting March 16, 2026.") remains unchanged.

Source: Coding guidelines

.agents/skills/nemoclaw-user-reference/references/commands.md (1)

1-3: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the required Markdown SPDX header.

This *.md source file should include the SPDX header using HTML comments at the top.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/nemoclaw-user-reference/references/commands.md around lines 1
- 3, Add an SPDX header as HTML comments at the very top of this Markdown file
(above the "# NemoClaw CLI Commands Reference" title and the import line).
Insert comments like an SPDX-FileCopyrightText line and an
SPDX-License-Identifier line (e.g., <!-- SPDX-FileCopyrightText: YourOrg or
Author --> and <!-- SPDX-License-Identifier: MIT -->) so the file contains the
required SPDX header before any content.

Source: Coding guidelines

🧹 Nitpick comments (1)
docs/about/release-notes.mdx (1)

20-24: ⚡ Quick win

Use one sentence per line in the updated bullets.

Each bullet currently contains multiple sentences on one source line; split them so every sentence occupies its own line per docs style.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/about/release-notes.mdx` around lines 20 - 24, Split each bullet so that
each sentence is on its own line: for the bullet starting with "OpenClaw
sandboxes..." break it into separate lines for the reconciliation, plugin
registry refresh, path pinning, and approval compatibility sentences; for the
"Inference setup..." bullet split into lines for model choices/first-start
budgets, NVIDIA Endpoints Nemotron option, Local Ollama fallback, managed vLLM
context window, and Local NVIDIA NIM startup behavior while keeping the
reference link attached to the appropriate sentence; do the same for the "Hermes
sandboxes..." bullet (routing and config sync), the "Credential and messaging
boundaries..." bullet (rebuild/update reuse, channels add warning, and status
reporting), and the "Sandbox startup..." bullet (healing permissions, CDI
detection, probing legacy gateway, and argument validation), ensuring each
sentence becomes its own bullet line and preserve the markdown links and
original wording.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/inference/use-local-inference.mdx`:
- Around line 172-176: The bash code block includes a prompt marker "$$" before
the command; remove the prompt marker so the block is directly copyable. Edit
the snippet containing the environment variables NEMOCLAW_PROVIDER and
NEMOCLAW_MODEL and the command "nemoclaw onboard --non-interactive --yes" to
remove the "$$" prefix (i.e., leave the command on its own line) so the code
block contains only copyable CLI text.

---

Outside diff comments:
In
@.agents/skills/nemoclaw-user-configure-inference/references/inference-options.md:
- Around line 1-3: Add the required SPDX license header as an HTML comment at
the very top of this Markdown file (above the "# NemoClaw Inference Options"
heading and any imports), using the project's standard SPDX identifier format;
ensure the header is an HTML comment so it remains a Markdown comment and
matches the repo's SPDX style for *.md files.

In @.agents/skills/nemoclaw-user-configure-inference/SKILL.md:
- Around line 1-5: Add the required SPDX license header as an HTML comment at
the very top of the Markdown file (before the frontmatter) for the skill named
"nemoclaw-user-configure-inference"; specifically insert a line like <!--
SPDX-License-Identifier: Apache-2.0 --> above the existing YAML frontmatter so
the file meets the Markdown SPDX requirement.

In
@.agents/skills/nemoclaw-user-configure-security/references/credential-storage.md:
- Around line 1-3: This Markdown file is missing the required SPDX header; add
an HTML comment SPDX license header at the very top of the file (before the "#
Credential Storage" heading and any imports) in the form <!--
SPDX-License-Identifier: <LICENSE> --> (for example <!--
SPDX-License-Identifier: MIT -->) so the file complies with the guideline that
all .md/.mdx files include an SPDX header; locate the file content around the "#
Credential Storage" heading and the import { AgentOnly } line to insert the
header.

In @.agents/skills/nemoclaw-user-overview/references/release-notes.md:
- Around line 1-3: Add the required SPDX license header as an HTML comment at
the very top of the Markdown file: insert a single-line HTML comment like <!--
SPDX-License-Identifier: Apache-2.0 --> (or the project's required SPDX
identifier) before the existing content so the file contains the required SPDX
header in comment format; ensure there is a newline after the comment and that
the original release notes text ("NVIDIA NemoClaw is available in early preview
starting March 16, 2026.") remains unchanged.

In @.agents/skills/nemoclaw-user-reference/references/commands.md:
- Around line 1-3: Add an SPDX header as HTML comments at the very top of this
Markdown file (above the "# NemoClaw CLI Commands Reference" title and the
import line). Insert comments like an SPDX-FileCopyrightText line and an
SPDX-License-Identifier line (e.g., <!-- SPDX-FileCopyrightText: YourOrg or
Author --> and <!-- SPDX-License-Identifier: MIT -->) so the file contains the
required SPDX header before any content.

In `@docs/about/release-notes.mdx`:
- Around line 2-3: Replace the two SPDX lines that currently use Markdown '#'
comments ("# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION &
AFFILIATES. All rights reserved." and "# SPDX-License-Identifier: Apache-2.0")
with HTML comment syntax so they become <!-- SPDX-FileCopyrightText: ... --> and
<!-- SPDX-License-Identifier: Apache-2.0 --> at the top of the MDX file,
preserving the exact SPDX text but using HTML comments instead of '#' markers.

In `@docs/security/credential-storage.mdx`:
- Around line 2-3: Replace the two plain-text SPDX lines with HTML-comment
formatted SPDX headers so the mdx parser and our guidelines pick them up;
specifically, locate the existing "SPDX-FileCopyrightText: Copyright (c) 2026
NVIDIA CORPORATION & AFFILIATES. All rights reserved." and
"SPDX-License-Identifier: Apache-2.0" lines in the
docs/security/credential-storage.mdx content and wrap each as HTML comments
(e.g., <!-- SPDX-FileCopyrightText: ... --> and <!-- SPDX-License-Identifier:
... -->), ensuring they remain the exact SPDX tokens.

---

Nitpick comments:
In `@docs/about/release-notes.mdx`:
- Around line 20-24: Split each bullet so that each sentence is on its own line:
for the bullet starting with "OpenClaw sandboxes..." break it into separate
lines for the reconciliation, plugin registry refresh, path pinning, and
approval compatibility sentences; for the "Inference setup..." bullet split into
lines for model choices/first-start budgets, NVIDIA Endpoints Nemotron option,
Local Ollama fallback, managed vLLM context window, and Local NVIDIA NIM startup
behavior while keeping the reference link attached to the appropriate sentence;
do the same for the "Hermes sandboxes..." bullet (routing and config sync), the
"Credential and messaging boundaries..." bullet (rebuild/update reuse, channels
add warning, and status reporting), and the "Sandbox startup..." bullet (healing
permissions, CDI detection, probing legacy gateway, and argument validation),
ensuring each sentence becomes its own bullet line and preserve the markdown
links and original wording.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f8b18ff5-3864-47ac-b038-e8269896fff0

📥 Commits

Reviewing files that changed from the base of the PR and between 2246a4b and a7e025e.

📒 Files selected for processing (8)
  • .agents/skills/nemoclaw-user-configure-inference/SKILL.md
  • .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
  • .agents/skills/nemoclaw-user-configure-security/references/credential-storage.md
  • .agents/skills/nemoclaw-user-overview/references/release-notes.md
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/about/release-notes.mdx
  • docs/inference/use-local-inference.mdx
  • docs/security/credential-storage.mdx

Comment thread docs/inference/use-local-inference.mdx
@miyoungc miyoungc added area: docs Documentation, examples, guides, or docs build area: skills Skills, agent behaviors, prompts, or skill packaging labels Jun 5, 2026
@cv cv added v0.0.60 Release target and removed v0.0.59 Release target labels Jun 5, 2026
@cv cv enabled auto-merge (squash) June 5, 2026 00:27
@cv cv merged commit f9cb344 into main Jun 5, 2026
33 checks passed
@cv cv deleted the docs/v0.0.59-release-notes branch June 5, 2026 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Documentation, examples, guides, or docs build area: skills Skills, agent behaviors, prompts, or skill packaging v0.0.60 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants