Skip to content

fix: a system file can't stop the server - #291

Merged
over2take merged 1 commit into
feature/system-builderfrom
sb/citysys-hostile-files
Oct 17, 2026
Merged

over2take merged 1 commit into
feature/system-builderfrom
sb/citysys-hostile-files

Conversation

@over2take

Copy link
Copy Markdown
Owner

A formula calling constructor(1) or toString(1) passed every check, since the built-in function table was a plain object, and then threw on each save of a sheet in that system, inside database callbacks where nothing caught it. The table has no prototype now. A buildings kind with such a name made the check throw; it is an ordinary problem now. And a system's recompute never throws out into a save: the sheet keeps its values and the server logs why.

New tests fill system files with harmful names at every key and name, nesting and sizes past the caps, and check nothing throws or leaks.

Summary

Test plan

  • Tested locally
  • Tests pass

Pre-merge checklist

Code quality:

  • Code follows project style
  • No breaking changes (or clearly documented)
  • No console errors or warnings

Version & Release:

  • Version bumped? If releasing to users, update:
    • frontend/package.json version
    • docker-compose.yml APP_VERSION
    • CHANGELOG.md with release notes
  • GitHub Actions will auto-tag Docker images with the new version

Before merging to main:

  • All tests passing
  • PR reviewed and approved
  • Branch is up to date with main
  • No merge conflicts

Related issues

A formula calling constructor(1) or toString(1) passed every check, since the
built-in function table was a plain object, and then threw on each save of a
sheet in that system, inside database callbacks where nothing caught it. The
table has no prototype now. A buildings kind with such a name made the check
throw; it is an ordinary problem now. And a system's recompute never throws
out into a save: the sheet keeps its values and the server logs why.

New tests fill system files with harmful names at every key and name, nesting
and sizes past the caps, and check nothing throws or leaks.
@over2take
over2take merged commit e47bc4b into feature/system-builder Oct 17, 2026
6 checks passed
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.

1 participant