Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
9e28ffc
chore(workspace): upgrade to Rust edition 2024
scab24 May 5, 2026
d5822c2
refactor(core): extract session and journal to ilold-session-core
scab24 May 5, 2026
633f518
feat(solana-core): crate skeleton reusing anchor-lang-idl via git dep
scab24 May 5, 2026
e3363a4
feat(solana-core): use convert_idl for legacy IDL fallback
scab24 May 5, 2026
f271b93
feat(solana-core): ProgramDef model with from_idl conversion
scab24 May 5, 2026
fc94b25
feat(solana-core): project ingest detection
scab24 May 5, 2026
942564c
test(solana-core): cover model conversion and ingest scenarios
scab24 May 5, 2026
3ceb39f
refactor(web): Backend enum and SolidityState wrapper
scab24 May 5, 2026
86af2de
feat(web): serve_solana entry and ProjectMap kind discriminant
scab24 May 5, 2026
6b42ed8
feat(cli): detect project kind and route serve/explore
scab24 May 5, 2026
0e829a7
feat(solana-core): Borsh decoder for accounts and instruction args
scab24 May 5, 2026
b13b184
test: add cross-program-invocation Anchor fixture
scab24 May 5, 2026
107e4eb
test(fixtures): include Anchor program source for cpi fixture
scab24 May 5, 2026
0c66302
feat(solana-core): VmHost wrapping LiteSVM with payer and clock control
scab24 May 5, 2026
d797287
chore(solana-core): enable curve25519 feature on solana-address
scab24 May 6, 2026
88943db
feat(solana-core): PDA derivation from IDL seed specs
scab24 May 6, 2026
2606e15
test(solana-core): PDA derivation against native helper
scab24 May 6, 2026
133d22d
chore(solana-core): add solana-account and solana-sdk-ids deps
scab24 May 6, 2026
7b8b3de
feat(solana-core): VmSnapshot with Path 4 fork
scab24 May 6, 2026
6c8ef8e
test(solana-core): fork showcase with divergent branches
scab24 May 6, 2026
332ab74
feat(solana-core): Borsh encoder symmetric to decoder
scab24 May 6, 2026
23b9c5a
chore(solana-core): add solana-instruction, message, transaction, has…
scab24 May 6, 2026
c33ad4d
feat(solana-core): instruction and transaction builders
scab24 May 6, 2026
7b9d94f
feat(solana-core): add_solana_step orchestrates ix execution and acco…
scab24 May 6, 2026
169bbf0
test(solana-core): encoder roundtrip with the decoder
scab24 May 6, 2026
0444786
test(solana-core): compute_diffs and diffs_to_mutations units
scab24 May 6, 2026
08d1abc
test(solana-core): e2e lever stub gated on compiled program
scab24 May 6, 2026
8514739
chore(solana-core): vendor lever.so for e2e test
scab24 May 6, 2026
9f8f197
test(solana-core): exercise add_solana_step on lever switch_power
scab24 May 6, 2026
b52a65e
refactor(session-core): pull shared scenario+access types from core
scab24 May 6, 2026
f986590
feat(solana-core): SolanaCommand and SolanaCommandResult types
scab24 May 6, 2026
665226c
feat(solana-core): execute read-only ops (funcs, state, session, user…
scab24 May 6, 2026
6e7b83d
test(solana-core): read-only command helpers
scab24 May 6, 2026
97b2aeb
feat(solana-core): builder multi-signer + execute call/back/clear
scab24 May 6, 2026
206e270
test(solana-core): execute_call multi-signer + back + clear
scab24 May 6, 2026
617fb47
feat(solana-core): execute users-new, airdrop, time-warp, finding, no…
scab24 May 6, 2026
6011500
test(solana-core): users, airdrop, time-warp, journal commands
scab24 May 6, 2026
8a8585d
feat(web): SolanaState owns vms-per-scenario, users registry and prog…
scab24 May 6, 2026
1e0f008
feat(web): handle_command branches by backend with Solana REPL pipeline
scab24 May 6, 2026
9281336
test(web): SolanaCommand pipeline over /api/cmd
scab24 May 6, 2026
db70456
feat(cli): explore detects backend kind, branches contracts and use
scab24 May 6, 2026
f2e9ae1
feat(cli): Solana REPL dispatch with formatters and helpers
scab24 May 6, 2026
0afd94f
feat(cli): route explore command to run_solana
scab24 May 6, 2026
484d1b4
feat(cli): help text and attach mode parity for Solana
scab24 May 6, 2026
e110dcd
fix(cli): contracts and programs in Solana TUI use /api/project/map
scab24 May 6, 2026
c484dd7
feat(frontend): home and palette detect kind solana
scab24 May 6, 2026
bf70f62
feat(frontend): contract detail page survives kind solana
scab24 May 6, 2026
e3b0b3d
feat(frontend): InstructionNode, AccountNode and TraceNode for Solana…
scab24 May 6, 2026
039038e
feat(frontend): Solana canvas with InstructionSidebar and program com…
scab24 May 6, 2026
3136489
feat(frontend): Solana run panel, NodeInspector branches and runtime …
scab24 May 6, 2026
74ca7c9
feat(frontend): Cmd+K palette publishes Solana instructions and execu…
scab24 May 6, 2026
38c2553
chore(workspace): refresh Cargo.lock for ilold-web deps
scab24 May 6, 2026
42ff7d3
feat(frontend): TopBar, StatusBar and session sidebar parity for Solana
scab24 May 7, 2026
baa3107
feat(frontend): ContextMenu branches for Solana node types
scab24 May 7, 2026
0d18e59
refactor(frontend): unify FunctionSidebar with kind prop, drop Instru…
scab24 May 7, 2026
46d854f
refactor(frontend): unify SessionSidebar with kind prop, drop SolanaS…
scab24 May 7, 2026
5a6eb2f
refactor(frontend): embed Solana run form in NodeInspector, drop modal
scab24 May 7, 2026
084cf27
refactor(frontend): single template tree parametrized by kind
scab24 May 7, 2026
59503ab
refactor(frontend): Solana canvas matches Solidity behavior with cfg/…
scab24 May 7, 2026
0e608b7
fix(frontend): Solana sequences edges direction and CFG expand for al…
scab24 May 7, 2026
231f988
fix(frontend): Session mode temporal flow with directional arrows
scab24 May 7, 2026
6763f38
test(fixtures): minimal staking Anchor program fixture
scab24 May 7, 2026
3bfcd8e
test(fixtures): vendor staking .so + idl, allow bin/ fallback for ven…
scab24 May 7, 2026
9b7a928
fix(frontend): coerce numeric args using IDL type field
scab24 May 7, 2026
7b39527
fix(frontend): u64/i64 args go as JSON number, only u128+ as decimal …
scab24 May 7, 2026
7961904
fix(frontend): Solana session canvas paints scenario tree with fork e…
scab24 May 7, 2026
c4297e7
fix(web): get_all_scenarios returns also for Solana, no Solidity gate
scab24 May 7, 2026
96b821e
fix(frontend): drop fake sequences overview for Solana, start with em…
scab24 May 7, 2026
657f551
feat(ws): broadcast solana_users_changed and refresh in UI
scab24 May 7, 2026
64aeb26
feat(ux): hide constant accounts and concise call syntax for Solana
scab24 May 7, 2026
a1369b2
chore: ignore internal SDD working notes
scab24 May 9, 2026
665a9c6
feat(solana): rewindable VM, replay on load, blockhash rotation, anal…
scab24 May 9, 2026
059a42b
feat(cli): Solana parity — prompt sync, analysis commands, save/load,…
scab24 May 9, 2026
aa3e421
fix(ui): Solana parity — trace context menu, palette modes, WS runtim…
scab24 May 9, 2026
51c4b38
feat(cli): finding, sequence, browser commands for Solana parity
scab24 May 9, 2026
20d3c9f
test(solana): regression coverage for blockhash rotation and Back rewind
scab24 May 9, 2026
9af0df4
docs(guide): Solana support page covering parity, gaps, and quickstart
scab24 May 9, 2026
6cbc825
test(scenarios): declarative scenario suite over staking fixture
scab24 May 9, 2026
1dc0f81
test(scenarios): add WebSocket broadcast scenario via python websockets
scab24 May 9, 2026
5b32e41
fix(ui): guard async onMount race + Solana-aware legend hints
scab24 May 9, 2026
70f7c56
docs: audit history, SDD roadmap, and Solana testing guide
scab24 May 9, 2026
d4acc7c
chore(ci): run cargo tests + scenario suite on PRs
scab24 May 9, 2026
19b51da
chore(docs): privatize internal sprint notes via .gitignore
scab24 May 9, 2026
5f8ec96
docs(guide): correct scenario count in testing guide
scab24 May 9, 2026
a991469
feat(export): audit deliverable markdown
scab24 May 9, 2026
29536d1
feat(save): opt-in --with-keypairs makes save/load deterministic
scab24 May 9, 2026
faf789d
fix(cli+ui): surface failed steps, decoded diffs, name-based timeline
scab24 May 9, 2026
2fdc596
feat(solana): failed Calls return CallFailed without polluting timeline
scab24 May 9, 2026
57317e5
refactor(solana): extract ProgramView as canonical IDL projection
scab24 May 10, 2026
f9b2f85
feat(solana): enrich ProgramView with types, discriminators, coupling
scab24 May 10, 2026
b4f86b4
chore(solana): drop verbose comments from view enrichment
scab24 May 10, 2026
f5a0273
feat(solana): enrich who with args, struct fields, ix and field lookups
scab24 May 10, 2026
0263954
feat(cli): structured ? help with purpose, syntax, examples, returns
scab24 May 10, 2026
0829e38
feat(view): expose program-view endpoint and migrate CLI to typed pay…
scab24 May 10, 2026
b49290f
feat(canvas): paint Solana ProgramView with real fields, args, badges
scab24 May 10, 2026
24b69f6
feat(canvas): writable/read edges, hide-system toggle, ci cross-check
scab24 May 10, 2026
018eef5
refactor(view): remove legacy program-detail endpoint
scab24 May 10, 2026
fad212b
feat(solana): RuntimeOverlay backend + coverage command + cpi capture
scab24 May 10, 2026
0c6b898
feat(solana): persist failed calls + broadcast incremental overlay
scab24 May 10, 2026
3e4562e
feat(canvas): runtime cpi edges + authority labels + cleanup
scab24 May 10, 2026
ce12ffd
docs(guide): split solidity and solana with Elozer roadmap
scab24 May 11, 2026
8e5cd59
feat(mcp): crate skeleton with tool registry from help blocks
scab24 May 11, 2026
2855abd
chore(mcp): tighten t-r55a placeholder and defer subtasks
scab24 May 11, 2026
30e16ea
feat(mcp): functional tool handlers over /api/cmd
scab24 May 11, 2026
5671b6c
fix(mcp): expose users_new tool and fix sequence mapping
scab24 May 11, 2026
03d476a
feat(mcp): narration mode and httpmock integration tests
scab24 May 11, 2026
92c857e
docs(mcp): add reference page with client setup and tool registry
scab24 May 11, 2026
f87c7c3
feat(solana): instruction source viewer with open-in-ide parity
scab24 May 11, 2026
d1407a9
fix(canvas): wire source viewer for solana instruction nodes
scab24 May 11, 2026
dfe05ab
feat(mcp): agnostic contract with ilold_use to switch programs
scab24 May 11, 2026
aab9ef9
fix(solana): canonicalize instruction source path for open-in-ide
scab24 May 11, 2026
251dcdb
docs(guide): add llm-driven audit demo recipe
scab24 May 11, 2026
eec9a23
chore: drop AI-style comments across the codebase
scab24 May 11, 2026
fb4dc9a
chore(guide): drop internal LLM demo from public book
scab24 May 11, 2026
445918d
chore(guide): finish removing recipe stub from tracking
scab24 May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: test

on:
push:
branches: [main]
pull_request:
branches: [main]
paths:
- 'crates/**'
- 'tests/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/**'
- 'crates/ilold-web/frontend/**'

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1

jobs:
cargo-tests:
name: cargo test --workspace --release
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo + target
uses: Swatinem/rust-cache@v2
with:
shared-key: cargo-tests

- name: Build workspace (release)
run: cargo build --workspace --release

- name: Run unit + integration tests
run: cargo test --workspace --release

scenario-suite:
name: tests/scenarios/run.sh
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo + target
uses: Swatinem/rust-cache@v2
with:
shared-key: scenario-suite

- name: Build ilold CLI binary
run: cargo build --release --bin ilold -p ilold-cli

- name: Install python websockets (optional)
run: |
python3 -m pip install --user websockets || \
echo "websockets unavailable — runner will skip ws-broadcast.py"

- name: Run scenario suite
run: bash tests/scenarios/run.sh

frontend-cross-check:
name: frontend cross-check program-view
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Run program-view cross-check
working-directory: crates/ilold-web/frontend
run: npm run check:program-view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,8 @@ Thumbs.db

# Environment
.env

# Internal SDD working notes
/docs/sdd/

/docs/internal/
Loading
Loading