Offline Mode
Enable offline operation with local skill and MCP caching.
Activation
# Set offline mode
export DOTNET_HARNESS_OFFLINE=true
# Or use flag
rulesync generate --offline
```text
## Cache Structure
```text
.dotnet-agent-harness/
├── cache/
│ ├── skills/ # Cached skill content
│ ├── mcp-responses/ # Cached MCP responses
│ └── registry/ # Cached registry data
└── index.json # Search index
Workflow
Online Sync (when connected):
dotnet-agent-harness:sync-cacheOffline Operation:
- Uses cached skills exclusively
- MCP servers return cached responses
- Search uses local index
Configuration
{
"offline": {
"enabled": false,
"cachePath": ".dotnet-agent-harness/cache",
"maxCacheAge": "7d",
"fallbackEnabled": true
}
}
Commands
dotnet-agent-harness:sync-cache- Sync cache from remotedotnet-agent-harness:clear-cache- Clear local cachedotnet-agent-harness:cache-status- Show cache statistics
MCP Fallback
When offline:
- Serena: Uses cached symbol data
- Context7: Returns cached library docs
- Microsoft Learn: Serves from local cache
Best Practices
- Sync before travel/air-gapped work
- Keep cache under 500MB
- Clear stale cache weekly
- Use selective caching for large projects
Troubleshooting
Cache Miss: Run dotnet-agent-harness:sync-cache Stale Data: Clear and re-sync Large Cache: Exclude heavy
MCP servers
Code Navigation (Serena MCP)
Primary approach: Use Serena symbol operations for efficient code navigation:
- Find definitions:
serena_find_symbolinstead of text search - Understand structure:
serena_get_symbols_overviewfor file organization - Track references:
serena_find_referencing_symbolsfor impact analysis - Precise edits:
serena_replace_symbol_bodyfor clean modifications
When to use Serena vs traditional tools:
- Use Serena: Navigation, refactoring, dependency analysis, precise edits
- Use Read/Grep: Reading full files, pattern matching, simple text operations
- Fallback: If Serena unavailable, traditional tools work fine
Example workflow:
# Instead of:
Read: src/Services/OrderService.cs
Grep: "public void ProcessOrder"
# Use:
serena_find_symbol: "OrderService/ProcessOrder"
serena_get_symbols_overview: "src/Services/OrderService.cs"