Repository navigation
feat(lua-agent-builder): App Viewers as shipped (App mode, chat, branding, link names, pane); 1.19.0 - #33
Merged
Conversation
…ding, link names, pane); 1.19.0 web-apps.md §3: App mode with Apps.viewers.add/remove (full-access adds from a write route only, removes also from a job or webhook, only people the app added, admin exclusions and the re-invite that lifts them, outcomes and error codes), App Viewer chat and Lua.request.appAccess, branding (accent, logo, icon) and the /a/<link name> sign-in link. §4: lua.pane and lua.chat.available(). Drops the "not available yet" notes for chat and App mode. Routing in decision-trees, lua-new and lua-skill-builder; the auditor's gateway paragraph names App Viewers and gains findings 15 and 16. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
selcuk-lua
requested review from
richard-lua
and removed request for
richard-lua
November 3, 2026 07:47
- App mode example guards on accessLevel === 'use' (absent locally means full) - auditor greps all of src/ for Apps.viewers and reads every tool when chat is on - finding 15 covers outside APIs and User/Orders/Baskets, notes org memory + KB - finding 16 covers remove outside a write route, job, webhook or trigger - App Viewers keep org memory tools and searchKnowledgeBase: say so - skill builder asks write only when needed; team-only write routes refuse 'use' - decision tree scopes reads; previews refuse Apps.viewers (test_session_write_refused) - Lua.request heading lists userId/appAccess; audit Limits names App access switches Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
LUA-1986 (under LUA-1892). The plugin now teaches the App Viewer features as they shipped, so a builder asking "let reps sign in and save their own data" gets the right pieces, and
/lua-auditknows the App Viewer access rules.What changed
lib/knowledge/web-apps.md§3:viewers(write, chat, mode). App mode withApps.viewers.add/.remove: adds come only from a write route by a full-access person; removes also work from a job or webhook; the app removes only people its code added; someone an admin removed isexcludeduntil an admin invites them again. Also the outcomes andAppViewersErrorcodes, App Viewer chat withLua.request.appAccess, branding (accent, logo,branding.iconfrom 3.65.0), and the/a/<link name>sign-in link with its link name in App access. It notes thatlua compilerefuses a write route that never readsauth. §4:lua.pane.open/close/ask/setContextandlua.chat.available(). Four troubleshooting rows. The "not available yet" notes for chat and App mode are gone.decision-trees.md,commands/lua-new.md,agents/lua-skill-builder.md: "people outside the team sign in and keep their own records" now leads to App Viewers, a roster and the ownership check.primitives.md:Lua.request.appAccess.agents/lua-auditor.md: the gateway paragraph now names App Viewers (it said every caller has access to the agent). It listsApps.viewerscalls andappAccessbranches, and reads the agent's tools when the app asks for chat. Two new findings: 15, App Viewer chat through unscoped tools (always HIGH), and 16, App mode call that cannot work (LOW).Checked against
lua-core-services
mainb47e9c43e1 (lua-cli 3.65.0:src/api-exports.tsApps,src/interfaces/lua.tsLuaAppAccess,src/types/web-app.ts,web-app.plugin.ts; shared-typesapp-viewers.types.ts,web-route-contract.ts; lua-apiapp-viewer-rules.service.ts,web-app-entry.service.ts; lua-coreweb-app-access.service.ts,app-viewer-turn-tools), lua-uimain(app-client 0.1.1pane.ts,chat.ts), and lua-desktopmain(App access "Link name").npm run lintpasses.npm test: 2561 of 2562 pass. The failure istest/lib/qa/isolation.test.mjs, a 30 s timeout under local Node 26; it does not touch these files. CI on Node 18/20 decides.🤖 Generated with Claude Code