Skip to content

Add docs-site for docs.stevedores.org/oxidizedgraph - #9

Merged
stevei101 merged 2 commits into
developfrom
cursor-agent/docs-site
May 30, 2026
Merged

Add docs-site for docs.stevedores.org/oxidizedgraph#9
stevei101 merged 2 commits into
developfrom
cursor-agent/docs-site

Conversation

@stevei101

Copy link
Copy Markdown
Contributor

Summary

  • Adds React 19 + Vite 7 + Tailwind CSS v4 + Bun documentation site
  • Covers core concepts (State, Nodes, Edges, Runner), API reference
  • Comparison table with LangGraph (Python)

Test plan

  • bun run build passes locally

Made with Cursor

React 19 + Vite 7 + Tailwind CSS v4 + Bun documentation site.
Covers core concepts (State, Nodes, Edges, Runner), API reference,
comparison with LangGraph, and cross-links to other stevedores-org docs.

Co-authored-by: Cursor <cursoragent@cursor.com>

@stevei101 stevei101 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Code Review

Overall structure is clean and well-organized. However, there are several inaccuracies in the Rust code examples vs the actual API, plus a few infra/UX concerns.


Critical

1. max_iterations default is wrongRunner.tsx
Docs claim default is 25, but RunnerConfig::default() sets max_iterations: 100 (src/runner.rs:27).

2. ContextRouterNode::new constructor is wrongEdges.tsx
Docs show a 4-arg constructor that doesn't exist. The actual API is a builder pattern:

let router = ContextRouterNode::new("router", "intent")
    .route("search", "search_node")
    .route("chat", "chat_node")
    .default_route("fallback_node");

Medium

3. FunctionNode example uses unnecessary Box::pinNodes.tsx
The idiomatic pattern is |state| async move { ... } — no manual pinning needed. The docs' version works but is misleading.

4. Value vs serde_json::ValueConcepts.tsx, State.tsx
The AgentState struct examples show bare Value without an import. Should use serde_json::Value or include a use-statement.

5. Conditional edge closure takes &AgentState, not ownedConcepts.tsx
add_conditional_edge takes Fn(&AgentState) -> String. The examples should show the reference, e.g. |s: &AgentState|.


Low / Info

6. No mobile navigation — Sidebar is hidden lg:flex with no hamburger toggle. Mobile users have no nav.

7. No 404 catch-all routeApp.tsx has no <Route path="*" ...>. Unknown paths render blank.

8. Unused componentsStatusBadge, Card, CardGrid are defined but never used in any page.

9. Missing nginx security headers — No X-Content-Type-Options, X-Frame-Options, Content-Security-Policy, etc.

10. Ecosystem sidebar links may 404 if docs.stevedores.org/llama-rs etc. aren't live yet.


The API inaccuracies (items 1-5) should be fixed before merging — they'll confuse anyone trying to use the library from the docs.

@community-stevedores-org
community-stevedores-org changed the base branch from main to develop February 17, 2026 04:15
Remove the Dockerfile/nginx.conf.template pair and replace with an OCI
dockworker.toml configuration following the lornu-ai/lornu.ai
apps/liteworks-media precedent: chainguard nginx base, bun build,
SBOM + sigstore signing, multi-arch (amd64/arm64), read-only rootfs.

Keep a slim nginx.conf (renamed from .template, port now a literal 8080
matching oci.config.env.PORT) to preserve the SPA fallback for
/oxidizedgraph/ routes — referenced via [[oci.layers]] name="nginx-config".
The cache-headers regex location is nested inside the prefix location so
asset requests still hit try_files instead of falling through.

Also drop the stale bun.lockb entry from .gitignore (project uses bun.lock).
@stevei101
stevei101 merged commit e30526d into develop May 30, 2026
@stevei101
stevei101 deleted the cursor-agent/docs-site branch June 11, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants