Currently if user want to edit a report on the server he has to use JSS. What JSS will do it will download the report and try to emulate the environment, which is not possible. User modify something and we upload it back. User have to test it.
This is not very good, we can't have the same environment in JSS. The only way could be if JRS run reports only with JRIO. With JRIO we could have an instance in JSS which will have the same environment. This could have another advantage that we are not disturbing the server with a report that could overload it. However this also means user will connect from the local machine to the database which is not very secure. So we should be able to work with a remote JRIO (which is not possible from studio today).
There is another problem, let's say we have a Report1, during the editing/testing phase users could use it, and they could get errors or wrong results because report is in work. This problem could be resolved if we introduce versioning on the server (allowing properties on the resource see https://jaspersoftideas.tibco.com/ideas/JSPR-I-52) and some properties to mark resource in work, indicate which version is safe to use.
I think ideal would be:
developer has a special JRIO instance in development node
there is a jrxml editor https://jaspersoftideas.tibco.com/ideas/JSPR-I-51
we use some properties to create a temporary version for development and run it on this development server
we use versioning system for safe work